diff --git a/klog.go b/klog.go index d6f52bd4..5b33973e 100644 --- a/klog.go +++ b/klog.go @@ -862,6 +862,9 @@ func (rb *redirectBuffer) Write(bytes []byte) (n int, err error) { // Use as: // ... // klog.SetLogger(zapr.NewLogger(zapLog)) +// +// To remove a backing logr implemention, use ClearLogger. Setting an +// empty logger with SetLogger(logr.Logger{}) does not work. func SetLogger(logr logr.Logger) { logging.mu.Lock() defer logging.mu.Unlock() @@ -869,7 +872,9 @@ func SetLogger(logr logr.Logger) { logging.logr = &logr } -func clearLogger() { +// ClearLogger removes a backing logr implementation if one was set earlier +// with SetLogger. +func ClearLogger() { logging.mu.Lock() defer logging.mu.Unlock() diff --git a/klog_test.go b/klog_test.go index 0df1420f..9a44c6be 100644 --- a/klog_test.go +++ b/klog_test.go @@ -1377,7 +1377,7 @@ func TestInfoSWithLogr(t *testing.T) { t.Run(data.msg, func(t *testing.T) { l := logr.New(logger) SetLogger(l) - defer clearLogger() + defer ClearLogger() defer logger.reset() InfoS(data.msg, data.keysValues...) @@ -1445,7 +1445,7 @@ func TestErrorSWithLogr(t *testing.T) { t.Run(data.msg, func(t *testing.T) { l := logr.New(logger) SetLogger(l) - defer clearLogger() + defer ClearLogger() defer logger.reset() ErrorS(data.err, data.msg, data.keysValues...) @@ -1503,7 +1503,7 @@ func TestCallDepthLogr(t *testing.T) { t.Run(tc.name, func(t *testing.T) { l := logr.New(logger) SetLogger(l) - defer clearLogger() + defer ClearLogger() defer logger.reset() defer logger.resetCallDepth()