diff --git a/pkg/xlog/api.go b/pkg/xlog/api.go index 95ee4357cb..5429d0d2dd 100644 --- a/pkg/xlog/api.go +++ b/pkg/xlog/api.go @@ -14,7 +14,16 @@ package xlog -import "go.uber.org/zap" +import ( + "context" + + "go.uber.org/zap" +) + +// L returns the standard logger. +func L(ctx context.Context) *Logger { + return FromContext(ctx) +} // Jupiter returns framework logger func Jupiter() *Logger { @@ -33,6 +42,8 @@ func Default() *Logger { func SetDefault(logger *Logger) { defaultLogger = logger stdLogger = defaultLogger.WithOptions(zap.AddCallerSkip(1)) + zap.ReplaceGlobals(defaultLogger) + zap.RedirectStdLog(defaultLogger) } // Debug logs a message at DebugLevel. The message includes any fields passed diff --git a/pkg/xlog/context.go b/pkg/xlog/context.go index 37bf022cff..2dbbd55f4f 100644 --- a/pkg/xlog/context.go +++ b/pkg/xlog/context.go @@ -36,6 +36,10 @@ func NewContext(ctx context.Context, l *Logger) context.Context { } func FromContext(ctx context.Context) *Logger { + if ctx == nil { + return defaultLogger + } + l, ok := ctx.Value(loggerKey{}).(*Logger) if !ok { return defaultLogger // default logger