core (logging): fixed twisted backend for twistd plugin, /!\ stdout logging in debug/nodaemon mode does'nt work anymore with .tac files.
This commit is contained in:
parent
e72f7d728c
commit
f21de3b01b
1 changed files with 7 additions and 4 deletions
|
|
@ -189,13 +189,16 @@ class ConfigureTwisted(ConfigureBasic):
|
|||
if C.LOG_OPT_OUTPUT_DEFAULT in log.handlers:
|
||||
# default output is already managed, we just add output to stdout if we are in debug or nodaemon mode
|
||||
|
||||
def postOptions(options): # called after options are parsed
|
||||
if options.get('nodaemon', False) or options.get('debug', False):
|
||||
addObserver(self.twisted_log.FileLogObserver(sys.stdout).emit)
|
||||
|
||||
# XXX: this hack is to know if we are in debug or nodaemon mode
|
||||
# any better method welcomed
|
||||
from twisted.scripts import twistd
|
||||
options = twistd.ServerOptions()
|
||||
options.parseOptions()
|
||||
if options.get('nodaemon', False) or options.get('debug', False):
|
||||
addObserver(self.twisted_log.FileLogObserver(sys.stdout).emit)
|
||||
# we monkey patch ServerOptions to be sure options.get is done after options are fully parsed
|
||||
# XXX: only works with twistd plugins, not with .tac files !
|
||||
twistd.ServerOptions.postOptions = postOptions
|
||||
else:
|
||||
# \\default is not in the output, so we remove current observers
|
||||
self.cleared_observers = self.log_publisher.observers
|
||||
|
|
|
|||
Loading…
Reference in a new issue