Структурированное логирование
структурированные логи (JSON) — машиночитаемы и запрашиваемы, в отличие от строчных.
Почему это важно: Парсинг текстовых логов регулярками — кошмар. Структурированные логи сразу индексируются и запрашиваются.
Главная идея
Каждая строка лога — это JSON-объект с полями, которые можно фильтровать и агрегировать.
Как это выглядит на практике
- Приложение пишет лог: { 'level': 'error', 'msg': 'db connect', 'user_id': 42, 'request_id': 'abc' }.
- Лог агрегатор (Loki, ELK, CloudWatch) получает JSON.
- Инженер ищет: все ошибки по user_id = 42 за последний час.
- Результат появляется за секунды, без регулярок.
Что происходит под капотом
- Уровни логирования: debug, info, warn, error, fatal.
- Context propagation: request_id, trace_id, user_id должны автоматически добавляться ко всем логам запроса.
- Sampling: в high-traffic сервисах логируется только часть запросов.
- Секреты (пароли, токены) никогда не должны попадать в логи.
Типичные ошибки и заблуждения
- Ошибка: логировать всё подряд. Это ведёт к огромным счетам и медленному поиску.
- Ошибка: puts/println достаточно. Строчные логи сложно парсить и индексировать.
- Ошибка: логи нужны только для отладки. Они критичны для аудита и инцидентов.
- Ошибка: информация в логах не утекает. Логи — частый источник утечек (PII, токены).
Ключевые выводы
- JSON-логи — стандарт современных backend-сервисов.
- Контекст должен пробрасываться автоматически.
- Выбирайте уровень логирования осознанно.
- Не логируйте секреты и PII.
Термины урока
Связь с работой backend-разработчика
Переход от строчных к структурированным логам — один из самых дешёвых шагов к observability, но даёт огромный выигрыш.
Мини-разбор реальной ситуации
После инцидента команда потратила 4 часа на парсинг текстовых логов регулярками, чтобы найти всех затронутых пользователей. После миграции на JSON тот же запрос занял минуту.
Что запомнить
- Логи должны быть запрашиваемыми.
- Контекст — ключ к корреляции.
- Никогда не логируйте секреты.
Итог
Структурированное логирование — простой, но мощный инструмент для понимания поведения продакшена.
Комментарии к уроку
Войдите, чтобы оставить комментарий.
Пока нет комментариев — будьте первым.