@@ -23,10 +23,12 @@ import (
2323 "github.com/go-logr/logr"
2424)
2525
26+ // These are the log levels used by the logger.
27+ // See https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/logging.md#what-method-to-use
2628const (
27- logLevelDebug = 2
28- logLevelWarn = 3
29- logLevelTrace = 4
29+ logLevelWarn = 1
30+ logLevelDebug = 4
31+ logLevelTrace = 5
3032)
3133
3234// Wrapper defines a convenient interface to use to log things.
@@ -43,43 +45,52 @@ type Wrapper interface {
4345
4446// Logger is a concrete logger using logr underneath.
4547type Logger struct {
46- logger logr.Logger
48+ callStackHelper func ()
49+ logger logr.Logger
4750}
4851
4952// NewLogger creates a logger with a passed in logr.Logger implementation directly.
5053func NewLogger (log logr.Logger ) * Logger {
54+ helper , log := log .WithCallStackHelper ()
5155 return & Logger {
52- logger : log ,
56+ callStackHelper : helper ,
57+ logger : log ,
5358 }
5459}
5560
5661// FromContext retrieves the logr implementation from Context and uses it as underlying logger.
5762func FromContext (ctx context.Context ) * Logger {
58- log := logr .FromContextOrDiscard (ctx )
63+ helper , log := logr .FromContextOrDiscard (ctx ). WithCallStackHelper ( )
5964 return & Logger {
60- logger : log ,
65+ callStackHelper : helper ,
66+ logger : log ,
6167 }
6268}
6369
6470var _ Wrapper = & Logger {}
6571
6672func (c * Logger ) Info (msg string , keysAndValues ... any ) {
73+ c .callStackHelper ()
6774 c .logger .Info (msg , keysAndValues ... )
6875}
6976
7077func (c * Logger ) Debug (msg string , keysAndValues ... any ) {
78+ c .callStackHelper ()
7179 c .logger .V (logLevelDebug ).Info (msg , keysAndValues ... )
7280}
7381
7482func (c * Logger ) Warn (msg string , keysAndValues ... any ) {
83+ c .callStackHelper ()
7584 c .logger .V (logLevelWarn ).Info (msg , keysAndValues ... )
7685}
7786
7887func (c * Logger ) Trace (msg string , keysAndValues ... any ) {
88+ c .callStackHelper ()
7989 c .logger .V (logLevelTrace ).Info (msg , keysAndValues ... )
8090}
8191
8292func (c * Logger ) Error (err error , msg string , keysAndValues ... any ) {
93+ c .callStackHelper ()
8394 c .logger .Error (err , msg , keysAndValues ... )
8495}
8596
0 commit comments