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

     1  package logf
     2  
     3  // Default field keys.
     4  const (
     5  	DefaultFieldKeyLevel  = "level"
     6  	DefaultFieldKeyMsg    = "msg"
     7  	DefaultFieldKeyTime   = "ts"
     8  	DefaultFieldKeyName   = "logger"
     9  	DefaultFieldKeyCaller = "caller"
    10  )
    11  
    12  // JSONEncoderConfig allows to configure journal JSON Encoder.
    13  type JSONEncoderConfig struct {
    14  	FieldKeyMsg    string
    15  	FieldKeyTime   string
    16  	FieldKeyLevel  string
    17  	FieldKeyName   string
    18  	FieldKeyCaller string
    19  
    20  	DisableFieldMsg    bool
    21  	DisableFieldTime   bool
    22  	DisableFieldLevel  bool
    23  	DisableFieldName   bool
    24  	DisableFieldCaller bool
    25  
    26  	EncodeTime     TimeEncoder
    27  	EncodeDuration DurationEncoder
    28  	EncodeError    ErrorEncoder
    29  	EncodeLevel    LevelEncoder
    30  	EncodeCaller   CallerEncoder
    31  }
    32  
    33  // WithDefaults returns the new config in which all uninitialized fields are
    34  // filled with their default values.
    35  func (c JSONEncoderConfig) WithDefaults() JSONEncoderConfig {
    36  	// Handle default for predefined field names.
    37  	if c.FieldKeyMsg == "" {
    38  		c.FieldKeyMsg = DefaultFieldKeyMsg
    39  	}
    40  	if c.FieldKeyTime == "" {
    41  		c.FieldKeyTime = DefaultFieldKeyTime
    42  	}
    43  	if c.FieldKeyLevel == "" {
    44  		c.FieldKeyLevel = DefaultFieldKeyLevel
    45  	}
    46  	if c.FieldKeyName == "" {
    47  		c.FieldKeyName = DefaultFieldKeyName
    48  	}
    49  	if c.FieldKeyCaller == "" {
    50  		c.FieldKeyCaller = DefaultFieldKeyCaller
    51  	}
    52  
    53  	// Handle defaults for type encoder.
    54  	if c.EncodeDuration == nil {
    55  		c.EncodeDuration = StringDurationEncoder
    56  	}
    57  	if c.EncodeTime == nil {
    58  		c.EncodeTime = RFC3339TimeEncoder
    59  	}
    60  	if c.EncodeError == nil {
    61  		c.EncodeError = DefaultErrorEncoder
    62  	}
    63  	if c.EncodeLevel == nil {
    64  		c.EncodeLevel = DefaultLevelEncoder
    65  	}
    66  	if c.EncodeCaller == nil {
    67  		c.EncodeCaller = ShortCallerEncoder
    68  	}
    69  
    70  	return c
    71  }