Files
minstrel/internal/logging/logging.go
T
bvandeusenandClaude Opus 5.5 d191a28217 docs: server comments say what the code does, not how it came to be (#6277)
Comment blocks in cmd/minstrel and 30 smaller internal packages, rewritten
to rule 32's standard with each citation read in context: task, milestone
and rule ids go, and so do the stories they were attached to ("used to",
"Before #N", measurements from one install, quotes, pointers to Fabled
Librarian's records and to docs/superpowers files that are not in the
repo). Where a story wrapped a real constraint, the constraint stays as a
present-tense fact.

Comments that had gone stale are corrected:
- taste.Config: the tuned values are overlaid by internal/recsettings;
  it is no longer "a later follow-up".
- StorageConfig: the data dir holds art, caches and the stream secret,
  not only playlist covers.
- the Subsonic album list and getUser comments describe what they do
  today rather than a milestone that would change it.

Checked: the non-comment token stream of every changed file matches
HEAD, and gofmt -l is empty.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 12:15:05 -04:00

44 lines
942 B
Go

package logging
import (
"fmt"
"io"
"log/slog"
"strings"
)
func New(w io.Writer, level, format string) (*slog.Logger, error) {
lvl, err := parseLevel(level)
if err != nil {
return nil, err
}
opts := &slog.HandlerOptions{Level: lvl}
var h slog.Handler
switch strings.ToLower(format) {
case "", "text":
h = slog.NewTextHandler(w, opts)
case "json":
h = slog.NewJSONHandler(w, opts)
default:
return nil, fmt.Errorf("unknown log format %q (want text|json)", format)
}
// Errors are also kept for the admin Overview.
return slog.New(newRingHandler(h, Errors)), nil
}
func parseLevel(s string) (slog.Level, error) {
switch strings.ToLower(strings.TrimSpace(s)) {
case "", "info":
return slog.LevelInfo, nil
case "debug":
return slog.LevelDebug, nil
case "warn", "warning":
return slog.LevelWarn, nil
case "error":
return slog.LevelError, nil
default:
return 0, fmt.Errorf("unknown log level %q", s)
}
}