Tornado by default steals all stdout and stderr to its logging. This is crazy, one can't even do 'print'.
Redirect all back to stdout and stderr:
import logging
import sys
import tornado.log
from tornado.options import options
def setup_logging_to_stream(stream, log_level):
logger = logging.getLogger()
channel = logging.StreamHandler(stream)
channel.setLevel(log_level)
channel.setFormatter(tornado.log.LogFormatter())
logger.addHandler(channel)
def setup_logging(log_level=None):
if log_level is None:
log_level = getattr(logging, options.logging.upper())
logger = logging.getLogger()
logger.setLevel(log_level)
setup_logging_to_stream(stream=sys.stdout, log_level=log_level)
setup_logging_to_stream(stream=sys.stderr, log_level=logging.ERROR)
setup_logging();
Reference:
https://gist.github.com/malexer/06fd8f6530a02fddc5feb7c1f2628799
No comments:
Post a Comment