Documentation
¶
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Encoding ¶
type Encoding uint8
Encoding specifies the logging output formatter: console or json
type Level ¶
type Level uint8
Level is the logging priority. Higher levels are more important.
const ( // DebugLevel are typically used on development environemt or for debug purpose. // Is more voluminous and are usually disabled in production. DebugLevel Level = iota // InfoLevel is the default logging priority. InfoLevel // WarnLevel logs are more important than Info, but not critical WarnLevel // ErrorLevel logs are high-priority. If an application is running smoothly, // it shouldn't generate any error-level logs. ErrorLevel // DPanicLevel logs are particularly important errors. In development the // logger panics after writing the message. DPanicLevel // PanicLevel logs a message, then panics. PanicLevel // FatalLevel logs a message, then calls os.Exit(1). FatalLevel )
type Logger ¶
type Logger interface {
// Log logs a message with the given Level.
// The variadic key-value pairs are treated as they are in With.
Log(level Level, msg string, keyAndValues ...interface{})
// Debug logs a message with some additional context.
// The variadic key-value pairs are treated as they are in With.
// Assumes log severity as 'DEBUG'
Debug(msg string, keyAndValues ...interface{})
// Info logs a message with some additional context.
// The variadic key-value pairs are treated as they are in With.
// Assumes log severity as 'INFO'
Info(msg string, keysAndValues ...interface{})
// Warn logs a message with some additional context.
// The variadic key-value pairs are treated as they are in With.
// Assumes log severity as 'WARNING'
Warn(msg string, keyAndValues ...interface{})
// Error logs a message with some additional context.
// The variadic key-value pairs are treated as they are in With.
// Assumes log severity as 'ERROR' and includes the stacktrace.
Error(msg string, keyAndValues ...interface{})
// DPanic logs a message with some additional context.
// In development, the logger then panics. (See DPanicLevel for details.)
// The variadic key-value pairs are treated as they are in With.
// Assumes log severity as 'CRITICAL' and includes the stacktrace.
DPanic(msg string, keysAndValues ...interface{})
// Panic logs a message with some additional context, then panics.
// The variadic key-value pairs are treated as they are in With.
// Assumes severity as 'ALERT' and includes the stacktrace.
Panic(msg string, keysAndValues ...interface{})
// Fatal logs a message with some additional context, then calls os.Exit.
// The variadic key-value pairs are treated as they are in With.
// Assumes severity as 'EMERGENCY' and includes the stacktrace.
Fatal(msg string, keysAndValues ...interface{})
// Sync flushes any buffered log entries.
Sync()
}
Example ¶
package main
import (
"bitbucket.org/labpatoscedro/logger"
)
func main() {
log := logger.NewLoggerWithLevel(logger.JSONEncoding, logger.DebugLevel)
defer log.Sync()
log.Debug("my log message")
log.Debug("my log message",
"key1", "value 1",
"key2", 1,
"key3", 1.2,
"key4", true,
"key5", map[string]interface{}{
"key": "value",
"another_key": 1,
})
log.Info("my log message")
log.Info("my log message",
"key1", "value 1",
"key2", 1,
"key3", 1.2,
"key4", true,
"key5", map[string]interface{}{
"key": "value",
"another_key": 1,
})
log.Warn("my log message")
log.Warn("my log message",
"key1", "value 1",
"key2", 1,
"key3", 1.2,
"key4", true,
"key5", map[string]interface{}{
"key": "value",
"another_key": 1,
})
log.Error("my log message")
log.Error("my log message",
"key1", "value 1",
"key2", 1,
"key3", 1.2,
"key4", true,
"key5", map[string]interface{}{
"key": "value",
"another_key": 1,
})
log.DPanic("my log message")
log.DPanic("my log message",
"key1", "value 1",
"key2", 1,
"key3", 1.2,
"key4", true,
"key5", map[string]interface{}{
"key": "value",
"another_key": 1,
})
log.Panic("my log message")
log.Panic("my log message",
"key1", "value 1",
"key2", 1,
"key3", 1.2,
"key4", true,
"key5", map[string]interface{}{
"key": "value",
"another_key": 1,
})
log.Fatal("my log message")
log.Fatal("my log message",
"key1", "value 1",
"key2", 1,
"key3", 1.2,
"key4", true,
"key5", map[string]interface{}{
"key": "value",
"another_key": 1,
})
}
func New ¶
func New() Logger
New returns a new logger with json encoding and default info level.
Example ¶
package main
import (
"bitbucket.org/labpatoscedro/logger"
)
func main() {
log := logger.New()
defer log.Sync()
log.Info("info message")
}
func NewLogger ¶
NewLogger returns a new logger with the given encoding(see Encoding for details) and default info level.
Example ¶
package main
import (
"bitbucket.org/labpatoscedro/logger"
)
func main() {
jsonLogger := logger.NewLogger(logger.JSONEncoding)
defer jsonLogger.Sync()
jsonLogger.Info("info message")
consoleLogger := logger.NewLogger(logger.ConsoleEncoding)
defer consoleLogger.Sync()
consoleLogger.Info("info message")
}
func NewLoggerWithLevel ¶
NewLoggerWithLevel returns a new logger with the given encoding(see Encoding for details) and level (see Level for details).
Example ¶
package main
import (
"bitbucket.org/labpatoscedro/logger"
)
func main() {
_ = logger.NewLoggerWithLevel(logger.JSONEncoding, logger.DebugLevel)
_ = logger.NewLoggerWithLevel(logger.JSONEncoding, logger.InfoLevel)
_ = logger.NewLoggerWithLevel(logger.JSONEncoding, logger.WarnLevel)
_ = logger.NewLoggerWithLevel(logger.JSONEncoding, logger.ErrorLevel)
_ = logger.NewLoggerWithLevel(logger.JSONEncoding, logger.DPanicLevel)
_ = logger.NewLoggerWithLevel(logger.JSONEncoding, logger.PanicLevel)
_ = logger.NewLoggerWithLevel(logger.JSONEncoding, logger.FatalLevel)
_ = logger.NewLoggerWithLevel(logger.ConsoleEncoding, logger.DebugLevel)
_ = logger.NewLoggerWithLevel(logger.ConsoleEncoding, logger.InfoLevel)
_ = logger.NewLoggerWithLevel(logger.ConsoleEncoding, logger.WarnLevel)
_ = logger.NewLoggerWithLevel(logger.ConsoleEncoding, logger.ErrorLevel)
_ = logger.NewLoggerWithLevel(logger.ConsoleEncoding, logger.DPanicLevel)
_ = logger.NewLoggerWithLevel(logger.ConsoleEncoding, logger.PanicLevel)
_ = logger.NewLoggerWithLevel(logger.ConsoleEncoding, logger.FatalLevel)
}
func Nil ¶ added in v1.1.0
func Nil() Logger
Nil returns a dumb logger instance which does nothing. Useful for a safe logger initialization.
Example ¶
package main
import (
"bitbucket.org/labpatoscedro/logger"
)
func main() {
log := logger.Nil()
log.Info("silent info message")
log.Debug("silent debug message")
}
Click to show internal directories.
Click to hide internal directories.