github.com/zly-app/zapp@v1.3.3/pkg/utils/context.go (about) 1 package utils 2 3 import ( 4 "context" 5 6 "github.com/zly-app/zapp/core" 7 ) 8 9 var Ctx = &ctxCli{} 10 11 type ctxCli struct{} 12 13 var ctxLoggerKey = &ctxLoggerField{} 14 15 type ctxLoggerField struct{} 16 17 // 将log存入ctx 18 func (*ctxCli) SaveLogger(ctx context.Context, log core.ILogger) context.Context { 19 return context.WithValue(ctx, ctxLoggerKey, log) 20 } 21 22 // 获取log, 不存在时返回nil 23 func (*ctxCli) GetLogger(ctx context.Context) core.ILogger { 24 value := ctx.Value(ctxLoggerKey) 25 log, ok := value.(core.ILogger) 26 if ok { 27 return log 28 } 29 return nil 30 }