Найти в Дзене
Калинкин

Иерархия уровня журнала

Оглавление

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

Иерархия уровня журнала
Иерархия уровня журнала

Мониторинг является неотъемлемой частью качественной разработки программного обеспечения. Это помогает нам знать, если и когда что-то пойдет не так в нашем программном обеспечении.

В случае, если что-то пойдет не так; если мы знаем, где искать, мы можем выяснить, что не так; отладка и устранение неполадок станут в сто раз проще — именно здесь на помощь приходит ведение журнала.

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

В этой статье я рассмотрю всю иерархию, покажу, что означает каждый уровень, а также некоторые подходящие варианты использования.

Порядок уровней журналов

  1. Трассировка
  2. Отладка
  3. Информация
  4. Предупреждение
  5. Ошибка
  6. <strong>Критический</strong> (или фатальный)

Что означает каждый уровень журнала

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

Трассировка

На этом уровне журнала фиксируются все подробности о приложении. Трассировка в основном используется для выявления проблем с программой. Этот уровень идеален, когда вам нужно увидеть, что произошло в вашей программе, или, возможно, определить, что произошло в библиотеке сторонних разработчиков, которую вы использовали. Трассировка идеально показывает каждый отдельный шаг алгоритмического процесса.

Отладка

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

Информация

Это стандартный уровень ведения журнала. На этом уровне мы обычно предоставляем обновления об изменениях состояния в приложении. Хотя трудно провести тонкую грань между уровнями отладки и информации, хорошее эмпирическое правило при определении того, что подходит для уровня информации, заключается в том, что это не те вещи, о которых стоит беспокоиться. Для журнала информационного уровня хорошо подойдет вывод сообщения при выходе из системы, когда запись сохраняется в базе данных, или при получении запроса в контроллере API, или при возврате ответа.

Предупреждение

Этот уровень используется, чтобы показать, когда вы обнаружили что-то необычное в приложении, но в то же время это не ошибка и не является фатальным для программы. Это может включать в себя такие вещи, как устаревшая библиотека или уязвимость в пакете.

Ошибка

На этом уровне разработчики смогут просматривать сообщения об исключениях, с которыми столкнулись их приложения и программы. Поскольку не все исключения являются фатальными для программы, на этом уровне мы хотим регистрировать исключения, не являющиеся фатальными. Примерами этого могут быть “Исключение аргумента”, “Исключение значения”, “Ошибка нулевого указателя” и т.д.

Критический (или фатальный)

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