github.com/ssgreg/logf@v1.4.1/context.go (about)

     1  package logf
     2  
     3  import "context"
     4  
     5  // NewContext returns a new Context with the given Logger inside it.
     6  func NewContext(parent context.Context, logger *Logger) context.Context {
     7  	return context.WithValue(parent, contextKeyLogger{}, logger)
     8  }
     9  
    10  // FromContext returns the Logger associated with this context or nil if
    11  // no value is associated. Successive calls to FromContext returns the
    12  // same result.
    13  func FromContext(ctx context.Context) *Logger {
    14  	value := ctx.Value(contextKeyLogger{})
    15  	if value == nil {
    16  		return nil
    17  	}
    18  
    19  	return value.(*Logger)
    20  }
    21  
    22  type contextKeyLogger struct{}