Содержание с кратким описанием:
Пакет logging определяет функции и классы, которые реализуют гибкую систему регистраций событий для приложений и библиотек. Уровень по умолчанию - WARNING, что означает, что будут отслеживаться только события этого уровня и выше, если пакет регистрации не настроен на обратное.
Разобраны следующие ситуации: логирование событий в файл, логирование событий из нескольких модулей, регистрация значений переменных, форматирование вида отображаемых сообщений, отображение даты и времени в сообщениях.
Пакет logging использует модульный подход и предлагает несколько категорий компонентов: регистраторы, обработчики, фильтры и форматеры.
В этом разделе рассмотрен принцип работы и связь основных элементов в процесса регистрации событий пакета logging
Функция getLogger() модуля logging возвращает регистратор с указанным именем name или, если имя отсутствует, то возвращает регистратор корневой root регистратор в иерархии.
Функция `logging.debug` регистрируют сообщение с уровнем `DEBUG`, `logging.info` регистрируют сообщение с уровнем `INFO`, `logging.warning` регистрируют сообщение с уровнем `WARNING`, `logging.error` регистрирует сообщение с уровнем `ERROR`, `logging.critical` регистрирует уровень `CRITICAL`.
Функция `exception()` модуля `logging` регистрирует сообщение с уровнем ERROR в корневом логгере. Информация об перехваченном исключении добавляется в сообщение регистрации `msg`.
Функция `log()` модуля `logging` регистрирует сообщение `msg` с уровнем `level` в корневом логгере.
Функция `disable()` модуля `logging` предоставляет приоритетный уровень логирования для всех регистраторов, который имеет приоритет над собственным уровнем.
Функция `addLevelName()` модуля `logging` связывает уровень `level` с текстом `levelName` во внутреннем словаре, который используется для сопоставления числовых уровней с текстовым представлением.
Функция `getLevelName()` модуля `logging` возвращает текстовое представление уровня `level` логирования ведения журнала.
Функция `basicConfig()` модуля `logging` выполняет базовую настройку системы ведения журнала, создав `logging.StreamHandler()` с `logging.Formatter()` по умолчанию и добавив его в корневой регистратор.
Функция `captureWarnings()` модуля `logging` используется для включения захвата предупреждений путем входа и выключения. Функция `captureWarnings()` может использоваться для интеграции ведения журнала с модулем предупреждений.
Функция `shutdown()` модуля `logging` информирует систему регистрации о необходимости упорядоченного завершения работы путем сброса и закрытия всех обработчиков.
Экземпляры `logging.LogRecord` создаются [`logging.Logger`] автоматически каждый раз, когда что-то регистрируется. Объект `logging.LogRecord` содержит всю информацию, относящуюся к регистрируемому событию.
Объекты регистраторов Logger никогда не должны создаваться напрямую, а должны всегда создаваться через функцию уровня модуля logging.getLogger(name). Многократные вызовы logging.getLogger() с одним и тем же именем всегда возвращают ссылку на один и тот же объект Logger.
Обработчики `logging.Handler` никогда не создается напрямую. Этот класс служит основой для более полезных подклассов. Пакет `logging` предоставляет несколько полезных обработчиков, созданных на основе базового обработчика `Handler`.
Класс Formatter() модуля logging возвращает новый экземпляр класса logging.Formatter. Экземпляр инициализируется строкой формата fmt для сообщения в целом, а также строкой формата datefmt для части даты/времени сообщения.
Базовый класс `Filter()` модуля `logging` возвращает экземпляр класса `logging.Filter`. Если указано имя `name`, то это должно быть имя регистратора, которому вместе со своими дочерними элементами будут разрешены события через фильтр. Если имя - пустая строка, то разрешается каждое событие.
Изменяет аргументы сообщения и/или ключевые аргументы, передаваемые в журнал для того, чтобы вставить контекстную информацию.
Настройка регистратора logger при помощи словаря конфигурации. Функция logging.config.dictConfig() принимает конфигурацию регистратора из словаря.
Настройка регистратора logger при помощи файла конфигурации. Функция logging.config.fileConfig() читает конфигурацию, поддерживаемую модулем configparser из файла fname.
В разделе представлены стандартные, наиболее часто используемые обработчики logging.StreamHandler и logging.FileHandler пакета ведения журналов logging.
Класс `WatchedFileHandler()`, расположенный в модуле logging.handlers но следит за файлом, в который он выводит события. Если файл изменяется, то он закрывается и снова открывается с использованием старого имени файла. Может использоваться с такими программами Unix как `newsyslog` и `logrotate`.
Класс `RotatingFileHandler`, расположенный в модуле `logging.handlers`, поддерживает ротацию файлов журналов, расположенных на диске. Ротация логов основывается на заданном объеме файла.
Класс `TimedRotatingFileHandler()` поддерживает ротацию файлов журналов диска через определенные интервалы времени.
Класс `SMTPHandler()` модуля logging.handlers поддерживает отправку сообщений регистратора на адрес электронной почты через SMTP сервер.
Класс HTTPHandler() модуля logging.handlers поддерживает отправку сообщений регистратора на веб-сервер, используя семантику GET или POST запросов.