package config

type Logger struct {
	// Level follows logr verbosity semantics: larger values enable more
	// verbose Info logs. 0 logs normal Info/Error messages; 4 enables V(4)
	// debug-style logs.
	Level             int16 `yaml:"level" default:"0"`
	IsJSON            bool  `yaml:"isJSON"`
	DisableStacktrace bool  `yaml:"disableStacktrace"`
	DisableCaller     bool  `yaml:"disableCaller"`

	// only useful when Filepath is not empty.
	Filepath       string `yaml:"filepath" default:""`
	FileMaxSize    int    `yaml:"maxSize" default:"100"` // megabytes
	FileMaxBackups int    `yaml:"maxBackups" default:"0"`
	FileMaxAge     int    `yaml:"maxAge" default:"0"` // days
}

type Loggers struct {
	Logger `yaml:",inline"`

	ExtraLoggers map[string]Logger `yaml:"extraLoggers"`
}
