context.go raw
1 package log
2
3 import "context"
4
5 // logKey is a private context key.
6 type logKey struct{}
7
8 // NewContext returns a new context with logger.
9 func NewContext(ctx context.Context, v Interface) context.Context {
10 return context.WithValue(ctx, logKey{}, v)
11 }
12
13 // FromContext returns the logger from context, or log.Log.
14 func FromContext(ctx context.Context) Interface {
15 if v, ok := ctx.Value(logKey{}).(Interface); ok {
16 return v
17 }
18 return Default()
19 }
20