package logger import ( "log/slog" "os" "strings" ) func Setup(level, format string) *slog.Logger { var lvl slog.Level switch strings.ToLower(level) { case "debug": lvl = slog.LevelDebug case "warn", "warning": lvl = slog.LevelWarn case "error": lvl = slog.LevelError default: lvl = slog.LevelInfo } opts := &slog.HandlerOptions{ Level: lvl, AddSource: lvl == slog.LevelDebug, } var handler slog.Handler switch strings.ToLower(format) { case "json": handler = slog.NewJSONHandler(os.Stdout, opts) default: handler = slog.NewTextHandler(os.Stdout, opts) } log := slog.New(handler) slog.SetDefault(log) return log }