Уровни логирования
У логов следует использовать разные уровни, так будет легче фильтровать и исследовать проблему по логам.
Так же можно будет настроить алерты только на определенный тип сообщений, и получать уведомления, когда в системе произошла серьезная ошибка.
И можно будет настроить разный уровень сохранения/выводы логов. В таком случае при разработке можно включить вывод логов от INFO уровня, а на проде важно сохранять только сообщения уровня WARNING и выше.
Ниже описаны основные уровни логов и причины их использовать:
ERROR
В системе случилось что-то критичное, что влияет на бизнес процесс, на деньги, на пользователей. На такой тип ошибок должны быть настроены уведомления, чтобы даже ночью дежурные могли оперативно отреагировать на проблему.
Например: Внешний платежный шлюз перестал отвечать на наши запросы
WARNING
В системе произошла серьезная ошибка, но есть вероятность, что программа самостоятельно восстановится. При такой ошибке тоже надо уведомить дежурных, просто оперативная реакция не требуется.
Например: На наш запрос не ответил внешний платежный шлюз. Дальше retry система попробует повторить запрос еще несколько раз. И если шлюз так и не ответит, то упадет ошибка ERROR
INFO
Произошло изменение в системе или в какой-то сущности.
1. Система поднялась на порту 8080
DEBUG
Служит для отладки приложения при разработке, или в случае, когда надо поймать что-то на проде.
Например: текущее значение какой-то переменной
TRACE
Такой уровень логов нужен, чтобы отслеживать запросы внутри приложения.
- Пришел запрос на url /home
- Завершили обрабатывать запрос на /home за 0.5 секунд
- Начали/завершили обрабатывать метод
Источник: https://reflectoring.io/logging-levels