Documentation ¶
Index ¶
- Variables
- type Formatter
- type JSONFormatter
- type LogfmtFormatter
- type Logger
- func (l *Logger) Alert(message string, keyvals ...interface{}) error
- func (l *Logger) Critical(message string, keyvals ...interface{}) error
- func (l *Logger) Debug(message string, keyvals ...interface{}) error
- func (l *Logger) Emergency(message string, keyvals ...interface{}) error
- func (l *Logger) Error(message string, keyvals ...interface{}) error
- func (l *Logger) Info(message string, keyvals ...interface{}) error
- func (l *Logger) Notice(message string, keyvals ...interface{}) error
- func (l *Logger) Warning(message string, keyvals ...interface{}) error
- func (l Logger) With(keyvals ...interface{}) Logger
- type ValueGenerator
Examples ¶
Constants ¶
This section is empty.
Variables ¶
var DefaultCaller = Caller(5)
DefaultCaller is a Callert with a depth that corresponds to the first call outside of this package
var ErrIgnoredLogLevel = errors.New("Log level is ignored by the logger")
ErrIgnoredLogLevel is the error returned when a logger ignores the log at the current level configuration
Functions ¶
This section is empty.
Types ¶
type JSONFormatter ¶
type JSONFormatter struct{}
JSONFormatter implements the LogFormatter interface for JSON outpiut
type LogfmtFormatter ¶
type LogfmtFormatter struct{}
LogfmtFormatter implements the LogFormatter interface for Logfmt outpiut
type Logger ¶
type Logger struct { Writer io.Writer Formatter Formatter FilterLevel int // contains filtered or unexported fields }
Logger implements the Logger interface as well as some helper methods for leveled logging.
Example ¶
logger := Logger{} logger.Info("Info level log message", "key", "value")
Output: {"key":"value","level":"info","msg":"Info level log message"}
Example (Context) ¶
logger := Logger{}.With("key", "value") logger.Info("Info level log message")
Output: {"key":"value","level":"info","msg":"Info level log message"}
Example (Logfmt) ¶
logger := Logger{Formatter: LogfmtFormatter{}} logger.Info("Info level log message", "key", "value")
Output: level=info msg="Info level log message" key=value
Example (ValueGenerator) ¶
var v ValueGenerator = func() interface{} { return "generated" } logger := Logger{}.With("key", v) logger.Info("Info level log message")
Output: {"key":"generated","level":"info","msg":"Info level log message"}
Example (Writer) ¶
buffer := &bytes.Buffer{} logger := Logger{Writer: buffer} logger.Info("Info level log message", "key", "value")
Output:
func (*Logger) Alert ¶
Alert logs the provided key value pairs, adding the alert log level
Example ¶
logger := Logger{} logger.Alert("Alert level log message", "key", "value")
Output: {"key":"value","level":"alert","msg":"Alert level log message"}
func (*Logger) Critical ¶
Critical logs the provided key value pairs, adding the critical log level
Example ¶
logger := Logger{} logger.Critical("Critical level log message", "key", "value")
Output: {"key":"value","level":"critical","msg":"Critical level log message"}
func (*Logger) Debug ¶
Debug logs the provided key value pairs, adding the debug log level
Example ¶
logger := Logger{} logger.Debug("Debug level log message", "key", "value")
Output: {"key":"value","level":"debug","msg":"Debug level log message"}
func (*Logger) Emergency ¶
Emergency logs the provided key value pairs, adding the emergency log level
Example ¶
logger := Logger{} logger.Emergency("Emergency level log message", "key", "value")
Output: {"key":"value","level":"emergency","msg":"Emergency level log message"}
func (*Logger) Error ¶
Error logs the provided key value pairs, adding the error log level
Example ¶
logger := Logger{} logger.Error("Error level log message", "key", "value")
Output: {"key":"value","level":"error","msg":"Error level log message"}
func (*Logger) Info ¶
Info logs the provided key value pairs, adding the info log level
Example ¶
logger := Logger{} logger.Info("Info level log message", "key", "value")
Output: {"key":"value","level":"info","msg":"Info level log message"}
func (*Logger) Notice ¶
Notice logs the provided key value pairs, adding the notice log level
Example ¶
logger := Logger{} logger.Notice("Notice level log message", "key", "value")
Output: {"key":"value","level":"notice","msg":"Notice level log message"}
type ValueGenerator ¶
type ValueGenerator func() interface{}
A ValueGenerator is a function that generates a dynamic value to be evaluated at the time of a log event
var DefaultTimestamp ValueGenerator = func() interface{} { return time.Now().Format(time.RFC3339) }
DefaultTimestamp is a ValueGenerator that returns the current time in RFC3339 format
func Caller ¶
func Caller(depth int) ValueGenerator
Caller is a ValueGenerator that returns the file and line number where the log event originated