forked from gsn/predictor
23 lines
401 B
Go
23 lines
401 B
Go
package log
|
|
|
|
import (
|
|
"context"
|
|
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
type ctxLogKey struct{}
|
|
|
|
func ToCtx(ctx context.Context, lg *zap.Logger) context.Context {
|
|
return context.WithValue(ctx, ctxLogKey{}, lg)
|
|
}
|
|
|
|
func Ctx(ctx context.Context) *zap.Logger {
|
|
lg, ok := ctx.Value(ctxLogKey{}).(*zap.Logger)
|
|
if !ok || lg == nil {
|
|
zap.L().Error("no logger in context, using global")
|
|
return zap.L()
|
|
}
|
|
|
|
return lg
|
|
}
|