Azerbaijan, Georgia, Uzbekistan
XcitiumЗапрос демонстрации
МенюЗакрыть
Все материалы

Операционное руководство · Журналы приложений

Создавайте понятные и полезные журналы приложений

Журнал приложения должен показывать не только ошибку, но и время, компонент, уровень и результат события. Руководство объясняет, как выбирать события, различать уровни, применять структурированный формат и не записывать чувствительные данные.

Инженер изучает графики задержки, журналы и трассировку запроса на мониторах

Главная мысль

Связывайте каждую запись с диагностическим вопросом: какая операция не удалась, какой сервис затронут и когда это произошло? Не записывайте пароли, токены и ненужные персональные данные.

На какой вопрос отвечает журнал?

Журнал приложения сохраняет события, возникающие во время работы программы, с временными метками. Запуск и остановка, результат запроса, непредвиденная ошибка, сбой подключения к внешнему сервису и изменение конфигурации отвечают на разные вопросы при расследовании. Записи ОС и сервера описывают среду, а запись приложения может показать, какую операцию выполняла программа.

Операция

Начало и результат запроса, задания или интеграции.

Ошибка

Исключение, сбой зависимости или отказ, затронувший пользователя.

Изменение

Время и инициатор выпуска, изменения конфигурации или привилегий.

Выбирайте нужные поля события

Единые поля упрощают поиск и сравнение. Обычно полезны время, уровень, название сервиса и среды, тип события, результат, краткое сообщение, идентификатор запроса или трассировки, а при необходимости — безопасный код ошибки. Синхронизируйте часы и явно задавайте часовой пояс, чтобы сравнивать события между сервисами. Не нужно собирать весь возможный контекст для каждой записи.

Время и источник

UTC или явно указанная временная зона; сервис, версия и среда.

Событие и результат

Постоянное имя события, результат и выбранный уровень журнала.

Корреляция

ID запроса и, если есть, trace/span ID; сам идентификатор не должен быть секретом или данными учётной записи.

Используйте уровни последовательно

Уровень показывает срочность внимания, но названия и точный смысл зависят от библиотеки журналирования. Зафиксируйте короткий словарь команды: DEBUG — дополнительные сведения при разработке, INFO — штатный этап работы, WARN — неожиданная, но пока переносимая ситуация, ERROR — сбой операции, CRITICAL/FATAL — тяжёлый отказ компонента. Если одна проблема в разных сервисах получает разные уровни, правила оповещения становятся менее надёжными.

DEBUG / TRACE

Подробная диагностика; в рабочей среде ограничивайте объём и чувствительные поля.

INFO / WARN

Описывают штатную работу и условия, за которыми нужно следить, но которые ещё не являются отказом.

ERROR / CRITICAL

Обосновывают эскалацию из-за нарушения функции или более широкого воздействия.

Делайте структурированные записи понятными

Структурированный формат, например JSON, представляет каждое событие с постоянными ключами. Это позволяет искать текст и фильтровать или связывать записи по полям. Сохраняйте одинаковые имена и типы полей между сервисами. Пишите краткое сообщение, отдельно указывайте тип ошибки и контекст операции; при необходимости сохраняйте полный стек вызовов. JSONL — распространённый формат, в котором на строку приходится один JSON-объект.

      {"timestamp":"2026-10-09T08:30:00Z","level":"ERROR","service":"billing-api","event":"payment_authorization_failed","request_id":"req-7f21","error_code":"upstream_timeout"}
    

Не храните секреты и лишние персональные данные

Текст запроса, параметры URL, cookie, токены, пароли и полные данные пользователя могут случайно попасть в журнал. Удаляйте или маскируйте чувствительные значения на входе и собирайте только поля, нужные для цели. Контролируйте доступ при передаче и хранении, ограничивайте права и сохраняйте историю изменений.

Нужно ли записывать все события?

Нет. Выбирайте важные операции и вопросы расследования: избыточный шум может скрыть полезные записи.

Одинаковы ли уровни во всех системах?

Нет. Библиотеки и платформы различаются; документируйте свою семантику и правила сопоставления.