@@ -29,9 +29,8 @@ type loggerPromise struct {
29
29
childPromises []* loggerPromise
30
30
promisesLock sync.Mutex
31
31
32
- name * string
33
- tags []interface {}
34
- level int
32
+ name * string
33
+ tags []interface {}
35
34
}
36
35
37
36
func (p * loggerPromise ) WithName (l * DelegatingLogger , name string ) * loggerPromise {
@@ -61,21 +60,8 @@ func (p *loggerPromise) WithValues(l *DelegatingLogger, tags ...interface{}) *lo
61
60
return res
62
61
}
63
62
64
- func (p * loggerPromise ) V (l * DelegatingLogger , level int ) * loggerPromise {
65
- res := & loggerPromise {
66
- logger : l ,
67
- level : level ,
68
- promisesLock : sync.Mutex {},
69
- }
70
-
71
- p .promisesLock .Lock ()
72
- defer p .promisesLock .Unlock ()
73
- p .childPromises = append (p .childPromises , res )
74
- return res
75
- }
76
-
77
63
// Fulfill instantiates the Logger with the provided logger.
78
- func (p * loggerPromise ) Fulfill (parentLogger logr.Logger ) {
64
+ func (p * loggerPromise ) Fulfill (parentLogger logr.LogSink ) {
79
65
var logger = parentLogger
80
66
if p .name != nil {
81
67
logger = logger .WithName (* p .name )
@@ -84,9 +70,6 @@ func (p *loggerPromise) Fulfill(parentLogger logr.Logger) {
84
70
if p .tags != nil {
85
71
logger = logger .WithValues (p .tags ... )
86
72
}
87
- if p .level != 0 {
88
- logger = logger .V (p .level )
89
- }
90
73
91
74
p .logger .lock .Lock ()
92
75
p .logger .logger = logger
@@ -105,17 +88,23 @@ func (p *loggerPromise) Fulfill(parentLogger logr.Logger) {
105
88
// a no-op logger before the promises are fulfilled).
106
89
type DelegatingLogger struct {
107
90
lock sync.RWMutex
108
- logger logr.Logger
91
+ logger logr.LogSink
109
92
promise * loggerPromise
93
+ info logr.RuntimeInfo
94
+ }
95
+
96
+ // Init implements logr.LogSink.
97
+ func (l * DelegatingLogger ) Init (info logr.RuntimeInfo ) {
98
+ l .info = info
110
99
}
111
100
112
101
// Enabled tests whether this Logger is enabled. For example, commandline
113
102
// flags might be used to set the logging verbosity and disable some info
114
103
// logs.
115
- func (l * DelegatingLogger ) Enabled () bool {
104
+ func (l * DelegatingLogger ) Enabled (v int ) bool {
116
105
l .lock .RLock ()
117
106
defer l .lock .RUnlock ()
118
- return l .logger .Enabled ()
107
+ return l .logger .Enabled (v )
119
108
}
120
109
121
110
// Info logs a non-error message with the given key/value pairs as context.
@@ -124,10 +113,10 @@ func (l *DelegatingLogger) Enabled() bool {
124
113
// the log line. The key/value pairs can then be used to add additional
125
114
// variable information. The key/value pairs should alternate string
126
115
// keys and arbitrary values.
127
- func (l * DelegatingLogger ) Info (msg string , keysAndValues ... interface {}) {
116
+ func (l * DelegatingLogger ) Info (level int , msg string , keysAndValues ... interface {}) {
128
117
l .lock .RLock ()
129
118
defer l .lock .RUnlock ()
130
- l .logger .Info (msg , keysAndValues ... )
119
+ l .logger .Info (level , msg , keysAndValues ... )
131
120
}
132
121
133
122
// Error logs an error, with the given message and key/value pairs as context.
@@ -144,27 +133,8 @@ func (l *DelegatingLogger) Error(err error, msg string, keysAndValues ...interfa
144
133
l .logger .Error (err , msg , keysAndValues ... )
145
134
}
146
135
147
- // V returns an Logger value for a specific verbosity level, relative to
148
- // this Logger. In other words, V values are additive. V higher verbosity
149
- // level means a log message is less important. It's illegal to pass a log
150
- // level less than zero.
151
- func (l * DelegatingLogger ) V (level int ) logr.Logger {
152
- l .lock .RLock ()
153
- defer l .lock .RUnlock ()
154
-
155
- if l .promise == nil {
156
- return l .logger .V (level )
157
- }
158
-
159
- res := & DelegatingLogger {logger : l .logger }
160
- promise := l .promise .V (res , level )
161
- res .promise = promise
162
-
163
- return res
164
- }
165
-
166
136
// WithName provides a new Logger with the name appended.
167
- func (l * DelegatingLogger ) WithName (name string ) logr.Logger {
137
+ func (l * DelegatingLogger ) WithName (name string ) logr.LogSink {
168
138
l .lock .RLock ()
169
139
defer l .lock .RUnlock ()
170
140
@@ -180,7 +150,7 @@ func (l *DelegatingLogger) WithName(name string) logr.Logger {
180
150
}
181
151
182
152
// WithValues provides a new Logger with the tags appended.
183
- func (l * DelegatingLogger ) WithValues (tags ... interface {}) logr.Logger {
153
+ func (l * DelegatingLogger ) WithValues (tags ... interface {}) logr.LogSink {
184
154
l .lock .RLock ()
185
155
defer l .lock .RUnlock ()
186
156
@@ -198,15 +168,15 @@ func (l *DelegatingLogger) WithValues(tags ...interface{}) logr.Logger {
198
168
// Fulfill switches the logger over to use the actual logger
199
169
// provided, instead of the temporary initial one, if this method
200
170
// has not been previously called.
201
- func (l * DelegatingLogger ) Fulfill (actual logr.Logger ) {
171
+ func (l * DelegatingLogger ) Fulfill (actual logr.LogSink ) {
202
172
if l .promise != nil {
203
173
l .promise .Fulfill (actual )
204
174
}
205
175
}
206
176
207
177
// NewDelegatingLogger constructs a new DelegatingLogger which uses
208
178
// the given logger before it's promise is fulfilled.
209
- func NewDelegatingLogger (initial logr.Logger ) * DelegatingLogger {
179
+ func NewDelegatingLogger (initial logr.LogSink ) * DelegatingLogger {
210
180
l := & DelegatingLogger {
211
181
logger : initial ,
212
182
promise : & loggerPromise {promisesLock : sync.Mutex {}},
0 commit comments