From b9d878e01315629f440401c7c1854246006892f7 Mon Sep 17 00:00:00 2001 From: LaurentiuNiculae Date: Mon, 26 Sep 2022 18:18:28 +0300 Subject: [PATCH] Fix logger race condition (#817) Signed-off-by: Laurentiu Niculae --- pkg/log/log.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pkg/log/log.go b/pkg/log/log.go index d8d951eb..a5fd87a3 100644 --- a/pkg/log/log.go +++ b/pkg/log/log.go @@ -5,6 +5,7 @@ import ( "runtime" "strconv" "strings" + "sync" "time" "github.com/rs/zerolog" @@ -12,6 +13,9 @@ import ( const defaultPerms = 0o0600 +// nolint:gochecknoglobals +var loggerSetTimeFormat sync.Once + // Logger extends zerolog's Logger. type Logger struct { zerolog.Logger @@ -22,7 +26,9 @@ func (l Logger) Println(v ...interface{}) { } func NewLogger(level, output string) Logger { - zerolog.TimeFieldFormat = time.RFC3339Nano + loggerSetTimeFormat.Do(func() { + zerolog.TimeFieldFormat = time.RFC3339Nano + }) lvl, err := zerolog.ParseLevel(level) if err != nil { @@ -47,7 +53,9 @@ func NewLogger(level, output string) Logger { } func NewAuditLogger(level, audit string) *Logger { - zerolog.TimeFieldFormat = time.RFC3339Nano + loggerSetTimeFormat.Do(func() { + zerolog.TimeFieldFormat = time.RFC3339Nano + }) lvl, err := zerolog.ParseLevel(level) if err != nil {