Как работает slog (structured logging)?

Middle
681 просмотров
AFK Offer AI

log/slog (Go 1.21+) — стандартный пакет для структурированного логирования.

import "log/slog"

// Текстовый формат (для разработки) slog.Info("user created", "user_id", 42, "email", "john@example.com", ) // time=2024-01-15T10:30:00Z level=INFO msg="user created" user_id=42 email=john@example.com

// JSON формат (для production) logger := slog.New(slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{ Level: slog.LevelInfo, })) slog.SetDefault(logger)

Группировка и контекст:

// Logger с постоянными полями
logger := slog.With("service", "auth", "version", "1.2")
logger.Info("started") // всегда будет service=auth

// Группы slog.Info("request", slog.Group("user", "id", 42, "role", "admin"), ) // ... user.id=42 user.role=admin

Уровни: Debug, Info, Warn, Error. Можно создать свой Handler для кастомного формата.

Следующий вопрос

Что такое Stringer интерфейс?