From b9c0b1118ac36ee18bfc7dc721d5de707ae77598 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E5=8F=AF?= Date: Mon, 26 Sep 2022 21:36:27 +0800 Subject: [PATCH] feat: improve log logic (#448) --- pkg/xlog/api.go | 13 ++++++++++++- pkg/xlog/context.go | 4 ++++ 2 files changed, 16 insertions(+), 1 deletion(-) 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