mirror of
https://github.com/grafana/grafana.git
synced 2024-12-30 10:47:30 -06:00
862a6a2fa6
Introduces a FromContext method on the log.Logger interface that allows contextual key/value pairs to be attached, e.g. per request, so that any logger using this API will automatically get the per request context attached. The proposal makes the traceID available for contextual logger , if available, and would allow logs originating from a certain HTTP request to be correlated with traceID. In addition, when tracing not enabled, skip adding traceID=00000000000000000000000000000000 to logs.
36 lines
898 B
Go
36 lines
898 B
Go
package log
|
|
|
|
import "context"
|
|
|
|
type Lvl int
|
|
|
|
const (
|
|
LvlCrit Lvl = iota
|
|
LvlError
|
|
LvlWarn
|
|
LvlInfo
|
|
LvlDebug
|
|
)
|
|
|
|
type Logger interface {
|
|
// New returns a new contextual Logger that has this logger's context plus the given context.
|
|
New(ctx ...interface{}) *ConcreteLogger
|
|
|
|
Log(keyvals ...interface{}) error
|
|
|
|
// Debug logs a message with debug level and key/value pairs, if any.
|
|
Debug(msg string, ctx ...interface{})
|
|
|
|
// Info logs a message with info level and key/value pairs, if any.
|
|
Info(msg string, ctx ...interface{})
|
|
|
|
// Warn logs a message with warning level and key/value pairs, if any.
|
|
Warn(msg string, ctx ...interface{})
|
|
|
|
// Error logs a message with error level and key/value pairs, if any.
|
|
Error(msg string, ctx ...interface{})
|
|
|
|
// FromContext returns a new contextual Logger that has this logger's context plus the given context.
|
|
FromContext(ctx context.Context) Logger
|
|
}
|