Как установить 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,

Другие вопросы по тегам