config

package
v1.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 20, 2023 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultTimeLayout = "2006-01-02 15:04:05.999999999"

Variables

View Source
var (
	LogConfigNotFoundError  = errors.New("log config not found")
	InvalidLogEncodingError = errors.New("invalid log encoding")
)

Functions

This section is empty.

Types

type Config

type Config struct {
	LoggerConfig `yaml:",inline"`
	Configs      map[string]*LoggerConfig `yaml:",inline" json:"configs" default:"{}"`
	Modules      map[string]string        `yaml:"modules" json:"modules" default:"{}"`
}

func (*Config) Build

func (c *Config) Build(modules ...string) (*log.Logger, error)

func (*Config) MustBuild

func (c *Config) MustBuild(modules ...string) *log.Logger

func (*Config) PostModify

func (c *Config) PostModify() (nc any, modified bool, err error)

type ConsoleEncoder

type ConsoleEncoder struct {
	// Set the keys used for each log entry. If any key is empty, that portion
	// of the entry is omitted.
	DisableLevelP      *bool  `json:"disable-level" yaml:"disable-level"`
	DisableTimeP       *bool  `json:"disable-time" yaml:"disable-time"`
	DisableNameP       *bool  `json:"disable-name" yaml:"disable-name"`
	DisableCallerP     *bool  `json:"disable-caller" yaml:"disable-caller" default:"true"`
	DisableFunctionP   *bool  `json:"disable-function" yaml:"disable-function" default:"true"`
	DisableStacktraceP *bool  `json:"disable-stacktrace" yaml:"disable-stacktrace" default:"true"`
	SkipLineEndingP    *bool  `json:"skip-line-ending" yaml:"skip-line-ending"`
	LineEnding         string `json:"line-ending" yaml:"line-ending"`
	// Configure the primitive representations of common complex types. For
	// example, some users may want all time.Times serialized as floating-point
	// seconds since epoch, while others may prefer ISO8601 strings.
	EncodeLevel    log.LevelEncoder    `json:"level-encoder" yaml:"level-encoder"`
	EncodeTime     log.TimeEncoder     `json:"time-encoder" yaml:"time-encoder"`
	EncodeDuration log.DurationEncoder `json:"duration-encoder" yaml:"duration-encoder"`
	EncodeCaller   log.CallerEncoder   `json:"caller-encoder" yaml:"caller-encoder"`
	// Unlike the other primitive type encoders, EncodeName is optional. The
	// zero value falls back to FullNameEncoder.
	EncodeName log.NameEncoder `json:"name-encoder" yaml:"name-encoder"`
	// Configures the field separator used by the console encoder. Defaults
	// to tab.
	ConsoleSeparator string `json:"console-separator" yaml:"console-separator"`
}

func (*ConsoleEncoder) DisableCaller

func (e *ConsoleEncoder) DisableCaller() bool

func (*ConsoleEncoder) DisableFunction

func (e *ConsoleEncoder) DisableFunction() bool

func (*ConsoleEncoder) DisableLevel

func (e *ConsoleEncoder) DisableLevel() bool

func (*ConsoleEncoder) DisableName

func (e *ConsoleEncoder) DisableName() bool

func (*ConsoleEncoder) DisableStacktrace

func (e *ConsoleEncoder) DisableStacktrace() bool

func (*ConsoleEncoder) DisableTime

func (e *ConsoleEncoder) DisableTime() bool

func (*ConsoleEncoder) PreModify

func (e *ConsoleEncoder) PreModify() (nc any, modified bool)

func (*ConsoleEncoder) SkipLineEnding

func (e *ConsoleEncoder) SkipLineEnding() bool

type JsonEncoder

type JsonEncoder struct {
	// Set the keys used for each log entry. If any key is empty, that portion
	// of the entry is omitted.
	MessageKey      string `json:"message-key" yaml:"message-key" default:"msg"`
	LevelKey        string `json:"level-key" yaml:"level-key" default:"level"`
	TimeKey         string `json:"time-key" yaml:"time-key" default:"time"`
	NameKey         string `json:"name-key" yaml:"name-key" default:"logger"`
	CallerKey       string `json:"caller-key" yaml:"caller-key" default:"caller"`
	FunctionKey     string `json:"function-key" yaml:"function-key" default:"func"`
	StacktraceKey   string `json:"stacktrace-key" yaml:"stacktrace-key"`
	SkipLineEndingP *bool  `json:"skip-line-ending" yaml:"skip-line-ending"`
	LineEnding      string `json:"line-ending" yaml:"line-ending"`
	EscapeESCP      *bool  `json:"escape-esc" yaml:"escape-esc"`
	// Configure the primitive representations of common complex types. For
	// example, some users may want all time.Times serialized as floating-point
	// seconds since epoch, while others may prefer ISO8601 strings.
	EncodeLevel    log.LevelEncoder    `json:"level-encoder" yaml:"level-encoder"`
	EncodeTime     log.TimeEncoder     `json:"time-encoder" yaml:"time-encoder"`
	EncodeDuration log.DurationEncoder `json:"duration-encoder" yaml:"duration-encoder"`
	EncodeCaller   log.CallerEncoder   `json:"caller-encoder" yaml:"caller-encoder"`
	// Unlike the other primitive type encoders, EncodeName is optional. The
	// zero value falls back to FullNameEncoder.
	EncodeName log.NameEncoder `json:"name-encoder" yaml:"name-encoder"`
}

func (*JsonEncoder) EscapeESC

func (e *JsonEncoder) EscapeESC() bool

func (*JsonEncoder) PreModify

func (e *JsonEncoder) PreModify() (nc any, modified bool)

func (*JsonEncoder) SkipLineEnding

func (e *JsonEncoder) SkipLineEnding() bool

type LoggerConfig

type LoggerConfig struct {
	// Level is the minimum enabled logging level. Note that this is a dynamic
	// level, so calling Config.Level.SetLevel will atomically change the log
	// level of all loggers descended from this config.
	Level log.AtomicLevel `json:"level" yaml:"level"`
	// DevelopmentP puts the logger in development mode, which changes the
	// behavior of DPanicLevel and takes stacktraces more liberally.
	DevelopmentP *bool `json:"development" yaml:"development"`
	// DisableCallerP stops annotating logs with the calling function's file
	// name and line number. By default, all logs are annotated.
	DisableCallerP *bool `json:"disable-caller" yaml:"disable-caller"`
	// DisableStacktraceP completely disables automatic stacktrace capturing. By
	// default, stacktraces are captured for WarnLevel and above logs in
	// development and ErrorLevel and above in production.
	DisableStacktraceP *bool `json:"disable-stacktrace" yaml:"disable-stacktrace" default:"true"`
	// Sampling sets a sampling policy. A nil SamplingConfig disables sampling.
	Sampling *log.SamplingConfig `json:"sampling" yaml:"sampling"`
	// Encoding sets the logger's encoding. Valid values are "json" and
	// "console", as well as any third-party encodings registered via
	// RegisterEncoder.
	Encoding string `json:"encoding" yaml:"encoding" default:"console"`
	// OutputPaths is a list of URLs or file paths to write logging output to.
	// See Open for details.
	OutputPaths []string `json:"output-paths" yaml:"output-paths" default:"[stdout]"`
	// ErrorOutputPaths is a list of URLs to write internal logger errors to.
	// The default is standard error.
	//
	// Note that this setting only affects internal errors; for sample code that
	// sends error-level logs to a different location from info- and debug-level
	// logs, see the package-level AdvancedConfiguration example.
	ErrorOutputPaths []string `json:"error-output-paths" yaml:"error-output-paths" default:"[stderr]"`
	// InitialFields is a collection of fields to add to the root logger.
	InitialFields map[string]interface{} `json:"initial-fields" yaml:"initial-fields"`

	ConsoleEncoder ConsoleEncoder `yaml:"console-encoder" json:"console-encoder"`
	JsonEncoder    JsonEncoder    `yaml:"json-encoder" json:"json-encoder"`
}

func (*LoggerConfig) Build

func (c *LoggerConfig) Build() (*log.Logger, error)

func (*LoggerConfig) Development

func (c *LoggerConfig) Development() bool

func (*LoggerConfig) DisableCaller

func (c *LoggerConfig) DisableCaller() bool

func (*LoggerConfig) DisableStacktrace

func (c *LoggerConfig) DisableStacktrace() bool

func (*LoggerConfig) MustBuild

func (c *LoggerConfig) MustBuild() *log.Logger

func (*LoggerConfig) PreModify

func (c *LoggerConfig) PreModify() (nc any, modified bool)

type Module

type Module interface {
	Module() string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL