Ответ
Slog — это новый пакет для структурированного логирования, добавленный в Go 1.21. Он заменяет старый log и предлагает более гибкий и производительный подход.
Ключевые особенности:
- Поддержка уровней логирования (Debug, Info, Warn, Error)
- Структурированный вывод (JSON, текстовый формат)
- Группировка атрибутов
- Высокая производительность
Пример использования:
import "log/slog"
func main() {
logger := slog.New(slog.NewJSONHandler(os.Stdout, nil))
logger.Info("user logged in",
"user_id", 123,
"ip", "192.168.1.1",
)
}
Вывод:
{
"time": "2023-10-01T12:00:00Z",
"level": "INFO",
"msg": "user logged in",
"user_id": 123,
"ip": "192.168.1.1"
}
Slog интегрируется с контекстом и поддерживает кастомные обработчики.