Обработчики не уведомляются, когда они добавляются или удаляются из регистраторов.Регистраторы используют обработчики, но обработчики ничего не знают о регистраторах.
Тем не менее, обработчик имеет метод close()
, который вызывается при выходе из программы с помощью logging.shutdown()
(зарегистрирован с atexit
), поэтому вы можете добавить свойлогика есть.Просто не забудьте вызвать базовую реализацию close()
, чтобы обеспечить правильное ведение хозяйства:
class MyHandler(logging.Handler):
def close(self):
# Write XML epilog.
# ...
super(MyHandler, self).close()