Add structured container-friendly logging

This commit is contained in:
ilbinek
2026-04-10 20:37:42 +02:00
parent f05dd6ee26
commit 79b92a994c
2 changed files with 50 additions and 8 deletions

36
logger.go Normal file
View File

@@ -0,0 +1,36 @@
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
}