diff --git a/cmd/main.go b/cmd/main.go index 73906ca..fe83c2c 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -99,7 +99,7 @@ func main() { opts := ctrlzap.Options{ Development: true, TimeEncoder: zapcore.ISO8601TimeEncoder, - Encoder: logger.NewSanitzeReconcileErrorEncoder(zapcore.EncoderConfig{}), + ZapOpts: []zap.Option{zap.WrapCore(logger.WrapCore)}, StacktraceLevel: zap.DPanicLevel, } opts.BindFlags(flag.CommandLine) diff --git a/internal/logger/logger.go b/internal/logger/logger.go index 26e78b5..327c522 100644 --- a/internal/logger/logger.go +++ b/internal/logger/logger.go @@ -18,30 +18,26 @@ limitations under the License. package logger import ( - "go.uber.org/zap/buffer" "go.uber.org/zap/zapcore" ) -func NewSanitzeReconcileErrorEncoder(cfg zapcore.EncoderConfig) zapcore.Encoder { - return &SanitzeReconcileErrorEncoder{zapcore.NewConsoleEncoder(cfg), cfg} +type wrapCore struct { + zapcore.Core } -type SanitzeReconcileErrorEncoder struct { - zapcore.Encoder - cfg zapcore.EncoderConfig +func WrapCore(core zapcore.Core) zapcore.Core { + return wrapCore{core} } -func (e *SanitzeReconcileErrorEncoder) EncodeEntry(entry zapcore.Entry, fields []zapcore.Field) (*buffer.Buffer, error) { - if entry.Message == "Reconcile error" { - // Downgrade the log level to debug to avoid log spam - entry.Level = zapcore.WarnLevel - entry.Stack = "" +// Check implements zapcore.Core. +func (w wrapCore) Check(entry zapcore.Entry, checkedEntry *zapcore.CheckedEntry) *zapcore.CheckedEntry { + if entry.Message == "Reconciler error" { + entry.Level = zapcore.DebugLevel } - return e.Encoder.EncodeEntry(entry, fields) + return w.Core.Check(entry, checkedEntry) } -func (e *SanitzeReconcileErrorEncoder) Clone() zapcore.Encoder { - return &SanitzeReconcileErrorEncoder{ - Encoder: e.Encoder.Clone(), - } +// With implements zapcore.Core. +func (w wrapCore) With(fields []zapcore.Field) zapcore.Core { + return wrapCore{w.Core.With(fields)} }