Что такое structured logging?

Junior
1.1k просмотров
AFK Offer AI

Structured logging — логирование в виде пар ключ-значение вместо произвольных строк. Вместо log.Printf("user %d logged in from %s", id, ip) пишешь slog.Info("user logged in", "user_id", id, "ip", ip).

// плохо — неструктурировано, не парсится
log.Printf("Failed to process order 123 for user 456")

// хорошо — структурировано, легко искать slog.Error("failed to process order", "order_id", 123, "user_id", 456, "err", err, ) // {"level":"ERROR","msg":"failed to process order","order_id":123,"user_id":456}

Зачем: структурированные логи можно индексировать, фильтровать, агрегировать в ELK, Loki, Datadog. Найти все ошибки для user_id=456 — один запрос вместо regex по строкам. Это основа observability в современных системах. Если твои логи нельзя парсить машиной — они почти бесполезны в проде.

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

Что такое testify?