Нотатки про програмування, музику, подорожі та плівку
Про мене  •  Список нотаток  •  Плівка

Логирование

Для чего вообще нужно логирование в приложении:

  1. Сказать, что делать система, не прибегая к отладчику.
  2. Найти причины возникновения той или иной ситуации внутри приложения.
  3. Анализ того на что тратится больше всего ресурсов.

Какие есть требования к логерам?

  1. Уровни логирования и фильтрация сообщений.
  2. Ротация лог файлов.
  3. Возможность писать сообщения не только в файл.
  4. Thread safety.
  5. Асинхронное логирование.
  6. Формат и конфигурация логов.

Уровни логирования

  • TRACE — вывод всего подряд. На тот случай, если Debug не позволяет локализовать ошибку. В нем полезно отмечать вызовы разнообразных блокирующих и асинхронных операций.
  • DEBUG — журналирование моментов вызова «крупных» операций. Старт/остановка потока, запрос пользователя и т. п.
  • INFO — обычные сообщения, информирующие о действиях системы. Реагировать на такие сообщения вообще не надо, но они могут помочь, например, при поиске багов, расследовании интересных ситуаций итд.
  • WARNING — нештатные ситуации. Например непредвиденные параметры, странные форматы запроса. Любая информация, которая должна привлечь внимание. Некритичные ошибки.
  • ERROR — ошибка в работе системы, требующая вмешательства. Что-то не сохранилось, что-то отвалилось.
  • FATAL — критическая ситуация, которая требует немедленной реакции. Обычно значит что система в неработоспособном состоянии. Пишем в лог все до чего можем дотянутся.

Замечание! Никогда не отправляйте пустое исключение в лог. Так как обычно не понятно к чему принадлежит этот стэк-трейс, как программа отреагировала на ошибку. Чтобы избежать этого, в дополнение к трейсам прикладывайте и сообщение, которое обьясняет что именно произошло.

Интересные статьи на тему

  1. Архитектура логирования.
  2. Application logging principles.
Надіслати
Поділитись