// Package log builds the agent's slog logger. Kept tiny on purpose; the agent is // a host service, so logs go to stderr (journald-friendly). Secrets must never be // passed to the logger — config is logged only via Config.Redacted (see config). package log import ( "log/slog" "os" "strings" ) // New returns a text slog.Logger at the given level ("debug"|"info"|"warn"| // "error"; unknown falls back to info), writing to stderr. func New(level 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 } h := slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{Level: lvl}) return slog.New(h) }