@@ -23,10 +23,12 @@ import (
23
23
"github.com/go-logr/logr"
24
24
)
25
25
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
26
28
const (
27
- logLevelDebug = 2
28
- logLevelWarn = 3
29
- logLevelTrace = 4
29
+ logLevelWarn = 1
30
+ logLevelDebug = 4
31
+ logLevelTrace = 5
30
32
)
31
33
32
34
// Wrapper defines a convenient interface to use to log things.
@@ -43,43 +45,52 @@ type Wrapper interface {
43
45
44
46
// Logger is a concrete logger using logr underneath.
45
47
type Logger struct {
46
- logger logr.Logger
48
+ callStackHelper func ()
49
+ logger logr.Logger
47
50
}
48
51
49
52
// NewLogger creates a logger with a passed in logr.Logger implementation directly.
50
53
func NewLogger (log logr.Logger ) * Logger {
54
+ helper , log := log .WithCallStackHelper ()
51
55
return & Logger {
52
- logger : log ,
56
+ callStackHelper : helper ,
57
+ logger : log ,
53
58
}
54
59
}
55
60
56
61
// FromContext retrieves the logr implementation from Context and uses it as underlying logger.
57
62
func FromContext (ctx context.Context ) * Logger {
58
- log := logr .FromContextOrDiscard (ctx )
63
+ helper , log := logr .FromContextOrDiscard (ctx ). WithCallStackHelper ( )
59
64
return & Logger {
60
- logger : log ,
65
+ callStackHelper : helper ,
66
+ logger : log ,
61
67
}
62
68
}
63
69
64
70
var _ Wrapper = & Logger {}
65
71
66
72
func (c * Logger ) Info (msg string , keysAndValues ... any ) {
73
+ c .callStackHelper ()
67
74
c .logger .Info (msg , keysAndValues ... )
68
75
}
69
76
70
77
func (c * Logger ) Debug (msg string , keysAndValues ... any ) {
78
+ c .callStackHelper ()
71
79
c .logger .V (logLevelDebug ).Info (msg , keysAndValues ... )
72
80
}
73
81
74
82
func (c * Logger ) Warn (msg string , keysAndValues ... any ) {
83
+ c .callStackHelper ()
75
84
c .logger .V (logLevelWarn ).Info (msg , keysAndValues ... )
76
85
}
77
86
78
87
func (c * Logger ) Trace (msg string , keysAndValues ... any ) {
88
+ c .callStackHelper ()
79
89
c .logger .V (logLevelTrace ).Info (msg , keysAndValues ... )
80
90
}
81
91
82
92
func (c * Logger ) Error (err error , msg string , keysAndValues ... any ) {
93
+ c .callStackHelper ()
83
94
c .logger .Error (err , msg , keysAndValues ... )
84
95
}
85
96
0 commit comments