slog — структурированный логгер, появившийся в стандартной библиотеке Go 1.21. В отличие от старого log, он пишет логи в виде пар ключ-значение, что удобно для парсинга и поиска в системах вроде ELK или Loki.
slog.Info("user logged in",
"user_id", 42,
"ip", "192.168.1.1",
)
// output: time=... level=INFO msg="user logged in" user_id=42 ip=192.168.1.1
Поддерживает два формата из коробки: TextHandler (human-readable) и JSONHandler. Можно создавать логгер с предустановленными полями через slog.With("service", "auth"). Уровни: Debug, Info, Warn, Error. Производительность отличная — аллокации минимальны за счёт использования slog.Attr.