2014-11-19 3 views
0

Я использую RotatingFileHandler (https://docs.python.org/2/library/logging.handlers.html) в Python для регистрации сообщений - есть ли способ выполнить обратный вызов функции, когда RotatingFileHandler переключается на новый файл?обратный вызов обработчика файла python

Например, я протоколирование сообщений, и, когда файл вращается Я хочу, чтобы обрабатывать все сообщения, используя другую определенную функцию

спасибо!

ответ

2

Там не совсем обратный вызов, но вы можете легко подкласс RotatingFileHandler и переопределить собственное «вращение», путем реализации doRollover method:

MyFileHandler(RotatingFileHandler): 

    def doRollover(): 
     # invoke the superclass' actual rotation implementation 
     super(MyFileHandler, self).doRollover() 

     # start doing your own tasks 
     # ... 
+0

это отличное решение! есть способ получить дескриптор файла для последнего закрытого файла после опрокидывания? – Michael

+0

Я уверен, хотя я не знаю подробностей реализации RotatingFileHandler. Посмотрите на фактическую реализацию: https://hg.python.org/cpython/file/23ab1197df0b/Lib/logging/handlers.py#l117, которые могут помочь ... – sebastian

Смежные вопросы