Как настроить стандартную библиотеку логирования `logging` в Python?

Ответ

Стандартная библиотека logging в Python — это мощный и гибкий инструмент для управления логами приложения. Она позволяет настраивать уровни логирования, форматы сообщений, обработчики (handlers) и фильтры.

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

Базовая настройка: Для быстрой настройки можно использовать logging.basicConfig(), который конфигурирует корневой логгер.

import logging

# Базовая настройка логирования
logging.basicConfig(
    level=logging.INFO,  # Уровень логирования (DEBUG, INFO, WARNING, ERROR, CRITICAL)
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', # Формат сообщения
    handlers=[
        logging.FileHandler('app.log', encoding='utf-8'), # Запись в файл
        logging.StreamHandler() # Вывод в консоль
    ]
)

logger = logging.getLogger(__name__) # Получение логгера для текущего модуля
logger.info("Это информационное сообщение.")
logger.warning("Это предупреждение.")

Расширенные возможности:

  • Множественные логгеры: Создание отдельных логгеров для разных модулей или компонентов с индивидуальными настройками.
  • Ротация логов: Использование RotatingFileHandler или TimedRotatingFileHandler для автоматической ротации лог-файлов по размеру или времени.
  • Фильтры: Добавление кастомных фильтров для выборочной обработки лог-записей.
  • Кастомные обработчики: Интеграция с внешними системами мониторинга (например, Sentry, ELK Stack) через специализированные обработчики.

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