From 1da8d8c9a6296754023fcdef24ef54d3dd060b53 Mon Sep 17 00:00:00 2001 From: Aldo Culquicondor Date: Wed, 10 Aug 2022 17:56:31 -0400 Subject: [PATCH] Fix log depth for DelegatingLogSink --- examples/scratch-env/main.go | 9 ++++++--- pkg/log/deleg.go | 15 +++++++++++++++ pkg/log/zap/zap.go | 2 +- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/examples/scratch-env/main.go b/examples/scratch-env/main.go index 13b8e03feb..b8305ffed3 100644 --- a/examples/scratch-env/main.go +++ b/examples/scratch-env/main.go @@ -21,10 +21,11 @@ import ( "os" flag "github.com/spf13/pflag" + "go.uber.org/zap" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/envtest" - "sigs.k8s.io/controller-runtime/pkg/log/zap" + logzap "sigs.k8s.io/controller-runtime/pkg/log/zap" ) var ( @@ -35,8 +36,9 @@ var ( // have a separate function so we can return an exit code w/o skipping defers func runMain() int { - loggerOpts := &zap.Options{ + loggerOpts := &logzap.Options{ Development: true, // a sane default + ZapOpts: []zap.Option{zap.AddCaller()}, } { var goFlagSet goflag.FlagSet @@ -44,7 +46,8 @@ func runMain() int { flag.CommandLine.AddGoFlagSet(&goFlagSet) } flag.Parse() - ctrl.SetLogger(zap.New(zap.UseFlagOptions(loggerOpts))) + ctrl.SetLogger(logzap.New(logzap.UseFlagOptions(loggerOpts))) + ctrl.Log.Info("Starting...") log := ctrl.Log.WithName("main") diff --git a/pkg/log/deleg.go b/pkg/log/deleg.go index 6fca630634..8ccb615678 100644 --- a/pkg/log/deleg.go +++ b/pkg/log/deleg.go @@ -73,6 +73,9 @@ func (p *loggerPromise) Fulfill(parentLogSink logr.LogSink) { p.logger.lock.Lock() p.logger.logger = sink + if withCallDepth, ok := sink.(logr.CallDepthLogSink); ok { + p.logger.logger = withCallDepth.WithCallDepth(1) + } p.logger.promise = nil p.logger.lock.Unlock() @@ -167,6 +170,18 @@ func (l *DelegatingLogSink) WithValues(tags ...interface{}) logr.LogSink { return res } +/* +func (l *DelegatingLogSink) GetCallStackHelper() func() { + var helper func() + if withHelper, ok := l.logger.(logr.CallStackHelperLogSink); ok { + helper = withHelper.GetCallStackHelper() + } else { + helper = func() {} + } + return helper +} +*/ + // Fulfill switches the logger over to use the actual logger // provided, instead of the temporary initial one, if this method // has not been previously called. diff --git a/pkg/log/zap/zap.go b/pkg/log/zap/zap.go index 7db4cdda39..2f6824d77a 100644 --- a/pkg/log/zap/zap.go +++ b/pkg/log/zap/zap.go @@ -244,7 +244,7 @@ func NewRaw(opts ...Opts) *zap.Logger { // this basically mimics NewConfig, but with a custom sink sink := zapcore.AddSync(o.DestWriter) - o.ZapOpts = append(o.ZapOpts, zap.AddCallerSkip(1), zap.ErrorOutput(sink)) + o.ZapOpts = append(o.ZapOpts, zap.ErrorOutput(sink)) log := zap.New(zapcore.NewCore(&KubeAwareEncoder{Encoder: o.Encoder, Verbose: o.Development}, sink, o.Level)) log = log.WithOptions(o.ZapOpts...) return log