Что такое уровни логирования в Python и в чем их различие

Ответ

Уровни логирования в 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: Система не может продолжать работу!