package logging import ( "log/slog" "os" "strings" ) // Config holds the logging configuration. type Config struct { Level string `yaml:"level"` } // Configure sets up the global logger based on the provided configuration. func Configure(cfg Config) *slog.Logger { opts := &slog.HandlerOptions{ Level: parseLogLevel(cfg.Level), } logger := slog.New(slog.NewJSONHandler(os.Stdout, opts)) slog.SetDefault(logger) return logger } func parseLogLevel(level string) slog.Level { switch strings.ToLower(level) { case "debug": return slog.LevelDebug case "info": return slog.LevelInfo case "warn": return slog.LevelWarn case "error": return slog.LevelError default: return slog.LevelInfo } }