Documentation ¶
Overview ¶
Package log provides a minimal interface for structured logging in services. Orion and orion utils use this log package for all logs.
How To Use ¶
The simplest way to use this package is by calling static log functions to report particular level (error/warning/info/debug)
log.Error(...) log.Warn(...) log.Info(...) log.Debug(...)
You can also initialize a new logger by calling 'log.NewLogger' and passing a loggers.BaseLogger implementation (loggers package provides a number of pre built implementations)
logger := log.NewLogger(gokit.NewLogger()) logger.Info(ctx, "key", "value")
Note:
Preferred logging output is in either logfmt or json format, so to facilitate these log function arguments should be in pairs of key-value
Contextual Logs ¶
log package uses context.Context to pass additional information to logs, you can use 'loggers.AddToLogContext' function to add additional information to logs. For example in access log from Orion service
{"@timestamp":"2018-07-30T09:58:18.262948679Z","caller":"http/http.go:66","error":null,"grpcMethod":"/AuthSvc.AuthService/Authenticate","level":"info","method":"POST","path":"/2.0/authenticate/","took":"1.356812ms","trace":"15592e1b-93df-11e8-bdfd-0242ac110002","transport":"http"}
we pass 'method', 'path', 'grpcMethod' and 'transport' from context, this information gets automatically added to all log calls called inside the service and makes debugging services much easier. Orion also generates a 'trace' ID per request, this can be used to trace an entire request path in logs.
Index ¶
- func Debug(ctx context.Context, args ...interface{})
- func Error(ctx context.Context, args ...interface{})
- func GetLevel() loggers.Level
- func Info(ctx context.Context, args ...interface{})
- func SetLevel(level loggers.Level)
- func SetLogger(l Logger)
- func Warn(ctx context.Context, args ...interface{})
- type Logger
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Logger ¶
type Logger interface { loggers.BaseLogger Debug(ctx context.Context, args ...interface{}) Info(ctx context.Context, args ...interface{}) Warn(ctx context.Context, args ...interface{}) Error(ctx context.Context, args ...interface{}) }
Logger interface is implemnted by the log implementation
func NewLogger ¶
func NewLogger(log loggers.BaseLogger) Logger
NewLogger creates a new logger with a provided BaseLogger
Directories ¶
Path | Synopsis |
---|---|
Package loggers provides loggers implementation for log package
|
Package loggers provides loggers implementation for log package |
gokit
Package gokit provides BaseLogger implementation for go-kit/log
|
Package gokit provides BaseLogger implementation for go-kit/log |
logrus
Package logrus provides a BaseLogger implementation for logrus
|
Package logrus provides a BaseLogger implementation for logrus |
stdlog
Package stdlog provides a BaseLogger implementation for golang "log" package
|
Package stdlog provides a BaseLogger implementation for golang "log" package |
Package wrap provides multiple wrap functions to wrap log implementation of other log packages
|
Package wrap provides multiple wrap functions to wrap log implementation of other log packages |