mirror of
https://github.com/sablierapp/sablier.git
synced 2025-12-21 13:23:03 +01:00
41 lines
847 B
Go
41 lines
847 B
Go
package sabliercmd
|
|
|
|
import (
|
|
"log/slog"
|
|
"os"
|
|
"strings"
|
|
"time"
|
|
|
|
"github.com/lmittmann/tint"
|
|
"github.com/sablierapp/sablier/pkg/config"
|
|
)
|
|
|
|
func setupLogger(config config.Logging) *slog.Logger {
|
|
w := os.Stderr
|
|
level := parseLogLevel(config.Level)
|
|
// create a new logger
|
|
logger := slog.New(tint.NewHandler(w, &tint.Options{
|
|
Level: level,
|
|
TimeFormat: time.Kitchen,
|
|
AddSource: true,
|
|
}))
|
|
|
|
return logger
|
|
}
|
|
|
|
func parseLogLevel(level string) slog.Level {
|
|
switch strings.ToUpper(level) {
|
|
case slog.LevelDebug.String():
|
|
return slog.LevelDebug
|
|
case slog.LevelInfo.String():
|
|
return slog.LevelInfo
|
|
case slog.LevelWarn.String():
|
|
return slog.LevelWarn
|
|
case slog.LevelError.String():
|
|
return slog.LevelError
|
|
default:
|
|
slog.Warn("invalid log level, defaulting to info", slog.String("level", level))
|
|
return slog.LevelInfo
|
|
}
|
|
}
|