Ответ
Уровни логирования в Python — это стандартизированные категории для классификации сообщений по степени их важности. Использование уровней позволяет гибко настраивать, какая информация будет записываться в лог, отфильтровывая менее значимые сообщения в production-среде.
Стандартный модуль logging
определяет 5 основных уровней, расположенных по возрастанию приоритета:
DEBUG
(10): Детальная информация, полезная только для диагностики проблем. Например, значения переменных, состояние системы в конкретный момент.INFO
(20): Информационные сообщения, подтверждающие, что приложение работает в штатном режиме. Например, запуск сервиса, успешное выполнение плановой задачи.WARNING
(30): Предупреждения о непредвиденных ситуациях, которые пока не являются ошибками, но могут ими стать. Например, использование устаревшего API, низкое место на диске.ERROR
(40): Сообщения о серьезных ошибках, из-за которых часть функциональности не может быть выполнена, но приложение продолжает работать. Например, невозможность подключиться к второстепенному сервису.CRITICAL
(50): Критические ошибки, которые приводят к аварийному завершению работы программы. Например, невозможность подключения к базе данных при старте.
Принцип работы:
Логгер будет обрабатывать только те сообщения, уровень которых равен или выше установленного для него порога.
import logging
# Устанавливаем минимальный уровень WARNING.
# Сообщения DEBUG и INFO будут проигнорированы.
logging.basicConfig(level=logging.WARNING, format='%(levelname)s: %(message)s')
logging.debug("Это сообщение не будет выведено")
logging.info("И это тоже не будет")
logging.warning("Обнаружена потенциальная проблема.")
logging.error("Произошла ошибка при обработке запроса.")
logging.critical("Система не может продолжать работу!")
Вывод программы:
WARNING: Обнаружена потенциальная проблема.
ERROR: Произошла ошибка при обработке запроса.
CRITICAL: Система не может продолжать работу!