20 lines
442 B
Go
20 lines
442 B
Go
|
package log
|
||
|
|
||
|
import "context"
|
||
|
|
||
|
// logKey is a private context key.
|
||
|
type logKey struct{}
|
||
|
|
||
|
// NewContext returns a new context with logger.
|
||
|
func NewContext(ctx context.Context, v Interface) context.Context {
|
||
|
return context.WithValue(ctx, logKey{}, v)
|
||
|
}
|
||
|
|
||
|
// FromContext returns the logger from context, or log.Log.
|
||
|
func FromContext(ctx context.Context) Interface {
|
||
|
if v, ok := ctx.Value(logKey{}).(Interface); ok {
|
||
|
return v
|
||
|
}
|
||
|
return Log
|
||
|
}
|