Логирование редко воспринимают как отдельную инженерную задачу. Обычно оно появляется «по пути»: написал сервис, добавил несколько logging.info() и забыл. Но когда сервисов становится десятки, оказывается, что качество логов влияет на разработку не меньше, чем качество кода.
Документация, логи, ошибки — все это тоже язык. И если у языка нет грамматики, словаря и правил, очень быстро он становится непредсказуемым.
Мы довольно быстро стандартизировали код: подключили Ruff, типизацию и тесты. И обнаружили, что следующий источник неоднозначности — логирование. Даже после перехода на structlog одинаковые события продолжали называться по‑разному. Именно тогда мы решили посмотреть на логирование как на язык.
Стандартизация логов — очень полезное мероприятие, которое во многих организациях часто откладывается как не срочная задача, однако, на дистанции она даст значительный буст в части снижения времени локализации проблемы. В этой статье как раз разобран один из подходов.
Если вы планируете заняться этой задачей по-взрослому, обратите внимание на Logs Data Model от OpenTelemetry.
MemOps 🤨