September 18, 2021

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

У логов следует использовать разные уровни, так будет легче фильтровать и исследовать проблему по логам.

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

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

Ниже описаны основные уровни логов и причины их использовать:

ERROR

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

Например:  Внешний платежный шлюз перестал отвечать на наши запросы

WARNING

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

Например:  На наш запрос не ответил внешний платежный шлюз. Дальше retry система попробует повторить запрос еще несколько раз. И если шлюз так и не ответит, то упадет ошибка ERROR

INFO

Произошло изменение в системе или в какой-то сущности.

Например:

1. Система поднялась на порту 8080

2. создан новый пользователь

3. вывод по cron задачу

DEBUG

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

Например: текущее значение какой-то переменной

TRACE

Такой уровень логов нужен, чтобы отслеживать запросы внутри приложения.

Например:

  1. Пришел запрос на url /home
  2. Завершили обрабатывать запрос на /home за 0.5 секунд
  3. Начали/завершили обрабатывать метод

Источник: https://reflectoring.io/logging-levels