37 lines
618 B
Go
37 lines
618 B
Go
package reforger_utils
|
|
|
|
import (
|
|
"log/slog"
|
|
"os"
|
|
"sync"
|
|
)
|
|
|
|
var (
|
|
loggerMu sync.RWMutex
|
|
logger = newDefaultLogger()
|
|
)
|
|
|
|
func newDefaultLogger() *slog.Logger {
|
|
return slog.New(slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{Level: slog.LevelInfo}))
|
|
}
|
|
|
|
// SetLogger configures the package logger.
|
|
// Passing nil resets it to the default JSON logger writing to stdout.
|
|
func SetLogger(l *slog.Logger) {
|
|
loggerMu.Lock()
|
|
defer loggerMu.Unlock()
|
|
|
|
if l == nil {
|
|
logger = newDefaultLogger()
|
|
return
|
|
}
|
|
|
|
logger = l
|
|
}
|
|
|
|
func getLogger() *slog.Logger {
|
|
loggerMu.RLock()
|
|
defer loggerMu.RUnlock()
|
|
return logger
|
|
}
|