From: Dan Fuhry Date: Fri, 13 Sep 2024 00:14:38 +0000 (-0400) Subject: utils/log: only init default logger once X-Git-Url: https://go.fuhry.dev/?a=commitdiff_plain;h=59602ff7732a8dfb65a647618d327657ae23a3f2;p=runtime.git utils/log: only init default logger once Fixes configuration of the default logger via flags --- diff --git a/utils/log/log.go b/utils/log/log.go index 843118a..e125f29 100644 --- a/utils/log/log.go +++ b/utils/log/log.go @@ -4,6 +4,8 @@ import ( "flag" "io" "log" + "os" + "sync" ) var logVerbosity int = 0 @@ -16,6 +18,9 @@ type Logger struct { prefix string } +var defaultLogger *Logger +var defaultLoggerOnce sync.Once + func init() { flag.IntVar(&logVerbosity, "vv", 0, "verbosity level for logs") flag.StringVar(&logLevel, "v", INFO.String(), "syslog log level for logs") @@ -30,7 +35,12 @@ func V(level int) *Logger { } func Default() *Logger { - return &Logger{Logger: log.Default()} + defaultLoggerOnce.Do(func() { + defaultLogger = &Logger{ + Logger: log.New(os.Stderr, "", log.LstdFlags), + } + }) + return defaultLogger } func WithPrefix(prefix string) *Logger {