// Package logging собирает slog-логгер по настройкам из конфига. package logging import ( "log/slog" "os" "strings" ) // New возвращает slog-логгер с указанным уровнем и форматом ("json"|"text"). func New(level, format string) *slog.Logger { opts := &slog.HandlerOptions{Level: parseLevel(level)} var handler slog.Handler if strings.EqualFold(format, "text") { handler = slog.NewTextHandler(os.Stdout, opts) } else { handler = slog.NewJSONHandler(os.Stdout, opts) } return slog.New(handler) } func parseLevel(level string) slog.Level { switch strings.ToLower(level) { case "debug": return slog.LevelDebug case "warn", "warning": return slog.LevelWarn case "error": return slog.LevelError default: return slog.LevelInfo } }