Метка: logme

Как не утонуть в одинаковых ошибках: CollapseXXX в logme

Одинаковые ошибки в логах — одна из самых неприятных проблем production-диагностики. Иногда проблема не в том, что логов мало, а в том, что их слишком много. Когда ошибка повторяется в цикле, на каждом reconnect-е, на каждом retry или на каждом запросе, лог быстро превращается в поток почти одинаковых строк. Например, внешний backend стал недоступен, а

Управление логированием без перезапуска

Управление логированием без перезапуска особенно важно для production-сервисов. Подробные debug-логи очень нужны именно тогда, когда что-то пошло не так, но держать их включенными постоянно обычно нельзя. Они создают шум, увеличивают объем файлов, могут замедлять горячие участки кода и иногда раскрывают детали, которые не должны постоянно попадать в лог. Самый простой подход — поменять конфиг и

Подсистемы в логировании: зачем нужны и как ими пользоваться

Подсистемы логирования C++ становятся необходимыми по мере роста проекта, хотя на старте о них почти не задумываются. Почти любой проект начинает с простого логирования. Несколько уровней — debug, info, warning, error — и этого хватает, чтобы понимать, что происходит. Пока код небольшой, лог читается как последовательный рассказ: сначала произошло это, потом это, потом ошибка. Но

Логирование на стадии ранней инициализации приложения

В сложных программных продуктах этап инициализации не тривиален и состоит как минимум из нескольких стадий. Может оказаться так, что какие-то ошибки происходят до того, до того, как логирование на раннем этапе станет доступным. В этом случае разработчику сложно понять, что именно произошло и в каком месте программы. Конечно же, систему логирования обычно инициализируют как можно