This is an automated email from the ASF dual-hosted git repository.

zhongxjian pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-kubernetes.git


The following commit(s) were added to refs/heads/master by this push:
     new 6dbc1324 [operator] add console logger logic
6dbc1324 is described below

commit 6dbc1324b6857f2dd68fdad5e952210f1e39b5b4
Author: mfordjody <[email protected]>
AuthorDate: Sat Dec 14 09:06:13 2024 +0800

    [operator] add console logger logic
---
 operator/cmd/cluster/install.go     |  8 +++++++
 operator/cmd/cluster/shared.go      |  4 ++++
 operator/pkg/util/clog/clog.go      | 46 ++++++++++++++++++++++++++++++++++++-
 operator/pkg/util/clog/log/scope.go |  4 ++++
 4 files changed, 61 insertions(+), 1 deletion(-)

diff --git a/operator/cmd/cluster/install.go b/operator/cmd/cluster/install.go
index af886a92..2ce363cd 100644
--- a/operator/cmd/cluster/install.go
+++ b/operator/cmd/cluster/install.go
@@ -6,6 +6,8 @@ import (
        "github.com/apache/dubbo-kubernetes/operator/pkg/installer"
        "github.com/apache/dubbo-kubernetes/operator/pkg/render"
        "github.com/apache/dubbo-kubernetes/operator/pkg/util/clog"
+       "github.com/apache/dubbo-kubernetes/operator/pkg/util/clog/log"
+       "github.com/apache/dubbo-kubernetes/pkg/art"
        "github.com/apache/dubbo-kubernetes/pkg/kube"
        "github.com/apache/dubbo-kubernetes/pkg/util/pointer"
        "github.com/spf13/cobra"
@@ -15,6 +17,8 @@ import (
        "time"
 )
 
+var installerScope = log.RegisterScope("installer", "installer")
+
 type installArgs struct {
        Files            []string
        Sets             []string
@@ -52,6 +56,10 @@ func InstallCmdWithArgs(ctx cli.Context, rootArgs *RootArgs, 
iArgs *installArgs)
                        if err != nil {
                                return err
                        }
+                       p := NewPrinterForWriter(cmd.OutOrStderr())
+                       cl := clog.NewConsoleLogger(cmd.OutOrStdout(), 
cmd.ErrOrStderr(), installerScope)
+                       p.Printf("%v\n", art.DubboArt())
+                       return install(kubeClient, rootArgs, iArgs, cl, 
cmd.OutOrStdout(), p)
                },
        }
        return ic
diff --git a/operator/cmd/cluster/shared.go b/operator/cmd/cluster/shared.go
index b394c570..0969405d 100644
--- a/operator/cmd/cluster/shared.go
+++ b/operator/cmd/cluster/shared.go
@@ -43,3 +43,7 @@ func OptionDeterminator(msg string, writer io.Writer) bool {
                }
        }
 }
+
+func NewPrinterForWriter(w io.Writer) Printer {
+       return &writerPrinter{writer: w}
+}
diff --git a/operator/pkg/util/clog/clog.go b/operator/pkg/util/clog/clog.go
index 8f6e727f..a9f0ee1d 100644
--- a/operator/pkg/util/clog/clog.go
+++ b/operator/pkg/util/clog/clog.go
@@ -1,6 +1,10 @@
 package clog
 
-import "io"
+import (
+       "github.com/apache/dubbo-kubernetes/operator/pkg/util/clog/log"
+       "io"
+       "os"
+)
 
 type ConsoleLogger struct {
        stdOut io.Writer
@@ -8,6 +12,34 @@ type ConsoleLogger struct {
        scope  *log.Scope
 }
 
+func (l *ConsoleLogger) LogAndError(v ...any) {
+       if len(v) == 0 {
+               return
+       }
+       s := fmt.Sprint(v...)
+       l.PrintErr(s + "\n")
+       l.scope.Infof(s)
+}
+func (l *ConsoleLogger) LogAndFatal(a ...any) {
+       l.LogAndError(a...)
+       os.Exit(-1)
+}
+func (l *ConsoleLogger) LogAndPrintf(format string, a ...any) {
+       s := fmt.Sprintf(format, a...)
+       l.Print(s + "\n")
+       l.scope.Infof(s)
+}
+func (l *ConsoleLogger) LogAndErrorf(format string, a ...any) {
+       s := fmt.Sprintf(format, a...)
+       l.PrintErr(s + "\n")
+       l.scope.Infof(s)
+}
+
+func (l *ConsoleLogger) LogAndFatalf(format string, a ...any) {
+       l.LogAndErrorf(format, a...)
+       os.Exit(-1)
+}
+
 type Logger interface {
        LogAndPrint(v ...any)
        LogAndError(v ...any)
@@ -24,3 +56,15 @@ func NewDefaultLogger() *ConsoleLogger {
 func (l *ConsoleLogger) LogAndPrint(v ...any) {
        return
 }
+
+func NewConsoleLogger(stdOut, stdErr io.Writer, scope *log.Scope) 
*ConsoleLogger {
+       s := scope
+       if s == nil {
+               s = log.RegisterScope(log.DefaultScopeName, 
log.DefaultScopeName)
+       }
+       return &ConsoleLogger{
+               stdOut: stdOut,
+               stdErr: stdErr,
+               scope:  s,
+       }
+}
diff --git a/operator/pkg/util/clog/log/scope.go 
b/operator/pkg/util/clog/log/scope.go
index f332139f..da45db03 100644
--- a/operator/pkg/util/clog/log/scope.go
+++ b/operator/pkg/util/clog/log/scope.go
@@ -6,6 +6,10 @@ import (
        "sync"
 )
 
+const (
+       DefaultScopeName = "default"
+)
+
 type Scope struct {
        name string
 }

Reply via email to