]> go.fuhry.dev Git - runtime.git/commitdiff
utils/log: only init default logger once
authorDan Fuhry <dan@fuhry.com>
Fri, 13 Sep 2024 00:14:38 +0000 (20:14 -0400)
committerDan Fuhry <dan@fuhry.com>
Fri, 13 Sep 2024 00:14:47 +0000 (20:14 -0400)
Fixes configuration of the default logger via flags

utils/log/log.go

index 843118a36f9ae242e3d0c0c5ac220135080de70a..e125f2928503de9f6ea3002e905f6f627285bf46 100644 (file)
@@ -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 {