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 }