Apply `--disable-color` to global logger

This commit is contained in:
世界 2023-03-13 11:23:00 +08:00
parent 7d22cf9b45
commit caad60da45
No known key found for this signature in database
GPG Key ID: CD109927C34A63C4
3 changed files with 14 additions and 23 deletions

View File

@ -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)

View File

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

View File

@ -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)
}