init push

This commit is contained in:
2026-07-16 22:16:45 +07:00
commit 8b068bdb10
1021 changed files with 332816 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
package logger
import (
"io"
"log/slog"
"os"
"strings"
"wucher/internal/config"
)
func New(cfg config.LoggingConfig) *slog.Logger {
level := parseLevel(cfg.Level)
options := &slog.HandlerOptions{Level: level}
var handler slog.Handler
switch strings.ToLower(strings.TrimSpace(cfg.Format)) {
case "text":
handler = slog.NewTextHandler(os.Stdout, options)
default:
handler = slog.NewJSONHandler(os.Stdout, options)
}
return slog.New(handler)
}
func NewDiscard() *slog.Logger {
return slog.New(slog.NewJSONHandler(io.Discard, nil))
}
func parseLevel(raw string) slog.Leveler {
switch strings.ToLower(strings.TrimSpace(raw)) {
case "debug":
return slog.LevelDebug
case "warn", "warning":
return slog.LevelWarn
case "error":
return slog.LevelError
default:
return slog.LevelInfo
}
}