From 0031bebd98677d7e1d0e55d95f5e9cdcc8caee74 Mon Sep 17 00:00:00 2001 From: Jared Wasinger Date: Wed, 22 Nov 2023 15:36:52 +0800 Subject: [PATCH] reinstate use of atomic.Value for holding root logger object --- log/root.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/log/root.go b/log/root.go index 0839b276fb..b980ef96d8 100644 --- a/log/root.go +++ b/log/root.go @@ -2,11 +2,12 @@ package log import ( "os" + "sync/atomic" "golang.org/x/exp/slog" ) -var root Logger +var root atomic.Value func init() { defaultLogger := &logger{slog.New(DiscardHandler())} @@ -15,13 +16,14 @@ func init() { // SetDefault sets the default global logger func SetDefault(l Logger) { - root = l - slog.SetDefault(root.Inner()) + root.Store(l) + slog.SetDefault(l.Inner()) } // Root returns the root logger func Root() Logger { - return root + res, _ := root.Load().(Logger) + return res } // The following functions bypass the exported logger methods (logger.Debug,