zlog/ctx.go

25 lines
542 B
Go
Raw Normal View History

2017-05-19 19:59:10 +00:00
package zerolog
2017-05-20 07:22:37 +00:00
import (
"context"
"io/ioutil"
)
var disabledLogger = New(ioutil.Discard).Level(Disabled)
2017-05-19 19:59:10 +00:00
type ctxKey struct{}
// WithContext returns a copy of ctx with l associated.
func (l Logger) WithContext(ctx context.Context) context.Context {
return context.WithValue(ctx, ctxKey{}, l)
}
2017-05-20 07:22:37 +00:00
// Ctx returns the Logger associated with the ctx. If no logger
// is associated, a disabled logger is returned.
func Ctx(ctx context.Context) Logger {
if l, ok := ctx.Value(ctxKey{}).(Logger); ok {
return l
}
return disabledLogger
2017-05-19 19:59:10 +00:00
}