Как установить twistd.py ILogObserver при использовании IPlugin?
Я хочу перенаправить запись в файл twistd.py в запись в python. При запуске .tac
файл обычно я могу легко сделать это:
from twisted.python.log import PythonLoggingObserver, ILogObserver
from twisted.application import service
application = service.Application("FooApp")
application.setComponent(ILogObserver, PythonLoggingObserver().emit)
Тем не менее, у меня, кажется, нет Application
при написании IPlugin
, Вместо этого у меня просто есть класс, который реализует IServiceMaker
а также IPlugin
, где makeService
возвращает service.Service
, Как я могу установить этот журнал наблюдателя?
Обратите внимание, что я не просто хочу добавить наблюдателя регистрации Python, я хочу перенаправить запись в журнал twistd так, чтобы она проходила только через встроенную систему регистрации Python.
1 ответ
Решение
Посмотрите на твист --logger
параметр:
# mylogger.py
from twisted.python import log
def logger():
return log.PythonLoggingObserver().emit
и затем вызвать twistd: twistd --logger=mylogger.logger
,