logging — Система логирования

import logging

Базовое использование

import logging

logging.basicConfig(level=logging.DEBUG)

logging.debug("Отладочное сообщение")
logging.info("Информационное сообщение")
logging.warning("Предупреждение")
logging.error("Ошибка")
logging.critical("Критическая ошибка!")

Настройка вывода

import logging

logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    filename='app.log',
    filemode='a'
)

Именованные логгеры

import logging

logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)

# Обработчик консоли
console = logging.StreamHandler()
console.setLevel(logging.INFO)
logger.addHandler(console)

# Обработчик файла
file_handler = logging.FileHandler('debug.log')
file_handler.setLevel(logging.DEBUG)
logger.addHandler(file_handler)

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

Уровень Значение Когда использовать
DEBUG 10 Детальная диагностика
INFO 20 Подтверждение работы
WARNING 30 Что-то неожиданное
ERROR 40 Серьёзная проблема
CRITICAL 50 Программа может упасть

Логирование исключений

try:
    result = 1 / 0
except ZeroDivisionError:
    logging.exception("Ошибка деления")  # Включает traceback

Официальная документация

logging — Logging facility

Полный справочник API (API Reference)

Конфигурация и Логгеры

Функция Описание
logging.basicConfig(**kwargs) Базовая настройка корневого логгера (уровни, формат, файл). Можно вызвать только ОДИН раз за запуск.
logging.getLogger(name=None) Возвращает логгер по имени (обычно используется __name__).

Методы логгера по уровням

Метод Описание
logger.debug(msg) Детальная диагностическая информация.
logger.info(msg) Информационные сообщения (подтверждение обычной работы).
logger.warning(msg) Предупреждения о потенциальных проблемах.
logger.error(msg) Ошибки (программа не смогла выполнить функцию).
logger.critical(msg) Критические ошибки (вероятно, падение программы).
logger.exception(msg) Выводит сообщение уровня ERROR ПЛЮС traceback (стек вызовов) исключения.

Обработчики (Handlers)

Обработчик Описание
logging.StreamHandler() Выводит логи в консоль (stdout или stderr).
logging.FileHandler(file) Записывает логи в указанный файл.