浏览代码

Apply `--disable-color` to global logger

世界 2 年之前
父节点
当前提交
caad60da45
共有 3 个文件被更改,包括 14 次插入23 次删除
  1. 4 0
      cmd/sing-box/main.go
  2. 4 0
      log/export.go
  3. 6 23
      log/factory.go

+ 4 - 0
cmd/sing-box/main.go

@@ -2,6 +2,7 @@ package main
 
 import (
 	"os"
+	"time"
 
 	_ "github.com/sagernet/sing-box/include"
 	"github.com/sagernet/sing-box/log"
@@ -33,6 +34,9 @@ func main() {
 }
 
 func preRun(cmd *cobra.Command, args []string) {
+	if disableColor {
+		log.SetStdLogger(log.NewFactory(log.Formatter{BaseTime: time.Now(), DisableColors: true}, os.Stderr, nil).Logger())
+	}
 	if workingDir != "" {
 		if err := os.Chdir(workingDir); err != nil {
 			log.Fatal(err)

+ 4 - 0
log/export.go

@@ -16,6 +16,10 @@ func StdLogger() ContextLogger {
 	return std
 }
 
+func SetStdLogger(logger ContextLogger) {
+	std = logger
+}
+
 func Trace(args ...any) {
 	std.Trace(args...)
 }

+ 6 - 23
log/factory.go

@@ -1,11 +1,15 @@
 package log
 
 import (
-	"context"
-
+	"github.com/sagernet/sing/common/logger"
 	"github.com/sagernet/sing/common/observable"
 )
 
+type (
+	Logger        logger.Logger
+	ContextLogger logger.ContextLogger
+)
+
 type Factory interface {
 	Level() Level
 	SetLevel(level Level)
@@ -22,24 +26,3 @@ type Entry struct {
 	Level   Level
 	Message string
 }
-
-type Logger interface {
-	Trace(args ...any)
-	Debug(args ...any)
-	Info(args ...any)
-	Warn(args ...any)
-	Error(args ...any)
-	Fatal(args ...any)
-	Panic(args ...any)
-}
-
-type ContextLogger interface {
-	Logger
-	TraceContext(ctx context.Context, args ...any)
-	DebugContext(ctx context.Context, args ...any)
-	InfoContext(ctx context.Context, args ...any)
-	WarnContext(ctx context.Context, args ...any)
-	ErrorContext(ctx context.Context, args ...any)
-	FatalContext(ctx context.Context, args ...any)
-	PanicContext(ctx context.Context, args ...any)
-}