...

Source file src/edge-infra.dev/pkg/lib/logging/context.go

Documentation: edge-infra.dev/pkg/lib/logging

     1  package logging
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/go-logr/logr"
     7  )
     8  
     9  // FromContext returns a logger with predefined values from a context.Context.
    10  // If one doesn't exist, a default logger is instantiated and returned.
    11  func FromContext(ctx context.Context, keysAndValues ...interface{}) logr.Logger {
    12  	var log *logr.Logger
    13  	if ctx != nil {
    14  		if logger, err := logr.FromContext(ctx); err == nil {
    15  			log = &logger
    16  		}
    17  	}
    18  	if log == nil {
    19  		log = &NewLogger().Logger
    20  	}
    21  
    22  	return log.WithValues(keysAndValues...)
    23  }
    24  
    25  // IntoContext takes a context and sets the logger as one of its values.
    26  // Use the FromContext function to retrieve the logger.
    27  func IntoContext(ctx context.Context, log logr.Logger) context.Context {
    28  	return logr.NewContext(ctx, log)
    29  }
    30  

View as plain text