Skip to content

Commit 6a99e51

Browse files
committed
chore: new option to enable KubeAwareEncoder
Signed-off-by: STRRL <[email protected]>
1 parent 61bde47 commit 6a99e51

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

pkg/log/zap/zap.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,11 @@ type Options struct {
170170
// TimeEncoder specifies the encoder for the timestamps in log messages.
171171
// Defaults to EpochTimeEncoder as this is the default in Zap currently.
172172
TimeEncoder zapcore.TimeEncoder
173+
// UseKubeAwareEncoder configures the logger to use the KubeAwareEncoder for encoding kubernetes
174+
// object as Type information and Namespace/Name.
175+
// Note: KubeAwareEncoder could NOT resolve the object passed by logger.WithValues(), see
176+
// https://github.com/kubernetes-sigs/controller-runtime/issues/1290
177+
UseKubeAwareEncoder bool
173178
}
174179

175180
// addDefaults adds defaults to the Options.
@@ -245,7 +250,11 @@ func NewRaw(opts ...Opts) *zap.Logger {
245250
sink := zapcore.AddSync(o.DestWriter)
246251

247252
o.ZapOpts = append(o.ZapOpts, zap.AddCallerSkip(1), zap.ErrorOutput(sink))
248-
log := zap.New(zapcore.NewCore(&KubeAwareEncoder{Encoder: o.Encoder, Verbose: o.Development}, sink, o.Level))
253+
encoder := o.Encoder
254+
if o.UseKubeAwareEncoder {
255+
encoder = &KubeAwareEncoder{Encoder: o.Encoder, Verbose: o.Development}
256+
}
257+
log := zap.New(zapcore.NewCore(encoder, sink, o.Level))
249258
log = log.WithOptions(o.ZapOpts...)
250259
return log
251260
}

0 commit comments

Comments
 (0)