Documentation ¶
Index ¶
Constants ¶
const ( CONSOLE = "console" JOURNAL = "systemd-journald" )
Variables ¶
This section is empty.
Functions ¶
func AssertOutput ¶
AssertOutput returns an error if output is not a valid logger output.
func NewJournaldCore ¶
func NewJournaldCore(identifier string, enab zapcore.LevelEnabler) zapcore.Core
NewJournaldCore returns a zapcore.Core that sends log entries to systemd-journald and uses the given identifier as a prefix for structured logging context that is sent as journal fields.
Types ¶
type Config ¶
type Config struct { // zapcore.Level at 0 is for info level. Level zapcore.Level `yaml:"level" env:"LEVEL" default:"0"` Output string `yaml:"output" env:"OUTPUT"` // Interval for periodic logging. Interval time.Duration `yaml:"interval" env:"INTERVAL" default:"20s"` Options Options `yaml:"options" env:"OPTIONS"` }
Config defines Logger configuration.
func (*Config) SetDefaults ¶ added in v0.4.0
func (c *Config) SetDefaults()
SetDefaults implements defaults.Setter to configure the log output if it is not set: systemd-journald is used when Icinga DB is running under systemd, otherwise stderr.
type Logger ¶
type Logger struct { *zap.SugaredLogger // contains filtered or unexported fields }
Logger wraps zap.SugaredLogger and allows to get the interval for periodic logging.
type Logging ¶
type Logging struct {
// contains filtered or unexported fields
}
Logging implements access to a default logger and named child loggers. Log levels can be configured per named child via Options which, if not configured, fall back on a default log level. Logs either to the console or to systemd-journald.
func NewLogging ¶
func NewLogging(name string, level zapcore.Level, output string, options Options, interval time.Duration) (*Logging, error)
NewLogging takes the name and log level for the default logger, output where log messages are written to, options having log levels for named child loggers and returns a new Logging.
func NewLoggingFromConfig ¶
NewLoggingFromConfig returns a new Logging from Config.
func (*Logging) GetChildLogger ¶
GetChildLogger returns a named child logger. Log levels for named child loggers are obtained from the logging options and, if not found, set to the default log level.
type Options ¶
Options define child loggers with their desired log level.
func (*Options) UnmarshalText ¶ added in v0.4.0
UnmarshalText implements encoding.TextUnmarshaler to allow Options to be parsed by env.
This custom TextUnmarshaler is necessary as - for the moment - env does not support map[T]encoding.TextUnmarshaler. After <https://github.com/caarlos0/env/pull/323> got merged and a new env release was drafted, this method can be removed.