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