Сообщить об ошибке.

Класс HTTPHandler() модуля logging.handlers в Python

Отправка сообщений модуля logging по HTTP(S)

Синтаксис:

from logging.handlers import HTTPHandler

HTTPHandler(host, url, method='GET', secure=False, 
            credentials=None, context=None)

Параметры:

  • host - хост,
  • url - URL-адрес
  • method='GET' - метод отправки,
  • secure=False - HTTPS соединение,
  • credentials=None - учетные данные,
  • context=None - параметры SSL.

Возвращаемое значение:

Описание:

Класс HTTPHandler() возвращает новый экземпляр класса HTTPHandler. Аргумент host может иметь форму host: port, если нужно использовать определенный номер порта.

  • Если аргумент method не указан, то по умолчанию используется GET.
  • Если аргумент secure=True, то будет использовано HTTPS соединение.
  • Параметр context может быть установлен на экземпляр ssl.SSLContext, чтобы настроить параметры SSL для HTTPS соединения.

Если указаны учетные данные credentials, то это должен быть 2-й кортеж, состоящий из идентификатора пользователя и пароля, который будет помещен в заголовок HTTP-авторизации с использованием обычной аутентификации. Если указываются учетные данные, то необходимо также указать secure=True, чтобы идентификатор пользователя и пароль не передавались в открытом виде.

Методы объекта HTTPHandler.

mapLogRecord(record):

Предоставляет словарь, основанный на записи record, который должен быть закодирован и отправлен на веб-сервер. Реализация по умолчанию просто возвращает record.__dict__.

Этот метод может быть переопределен, если, например только подмножество logging.LogRecord должно быть отправлено на веб-сервер, или если требуется более конкретная настройка того, что отправляется на сервер.

emit(record):

Отправляет запись на веб-сервер в виде словаря в кодировке URL. Для преобразования записи в словарь для отправки используется метод mapLogRecord().


Примечание. Поскольку подготовка записи для отправки ее на веб-сервер отличается от обычной операции форматирования, использование метода setFormatter() для задания Formatter для обработчика HTTPHandler() не имеет никакого эффекта.

Вместо вызова метода format() этот обработчик вызывает метод mapLogRecord() и затем urllib.parse.urlencode() для кодирования словаря в форму, подходящую для отправки на веб-сервер.