Как обрабатывать объект перед входом в систему? - PullRequest
0 голосов
/ 19 февраля 2020

Вместо этого:

def log_error(obj):
  msg = do_someprocess(obj)
  logging.error(msg)

Я хочу добавить do_someprocess как ловушку для регистрации. Когда я вызываю logging.error(obj), который выполняет do_someprocess перед регистрацией.


Справочная информация: объект является ошибкой object, он содержит идентификатор ошибки и сообщение, используйте logging.error(error_obj) для записи ошибки , do_someprocess предназначен для форматирования сообщения об ошибке объекта.


@ mrEvgenX Комментарий дает мне идею, что мне не нужно делать это как часть logging. поэтому я собираюсь добавить def __str__(self) в моем классе ошибок.

@ Ответ Сэма также работает как решение другого типа, обработчик - StreamHandler.

1 Ответ

1 голос
/ 19 февраля 2020

Вам нужно будет создать свой собственный обработчик (создать новый класс, который наследует от одного из обработчиков python) и добавить его в свой регистратор (это можно сделать один раз при инициализации с использованием AddHandler).

Пожалуйста, см. Поваренная книга Python * для примеров.

...