log extra arguments to console

This commit is contained in:
lilydjwg 2018-05-13 19:07:00 +08:00
parent ae58042a3e
commit 8c0f7b5680
2 changed files with 17 additions and 3 deletions

View file

@ -51,6 +51,16 @@ class TornadoLogFormatter(logging.Formatter):
prefix = (self._colors.get(record.levelno, self._normal) +
prefix + self._normal)
formatted = prefix + " " + record.message
formatted += ''.join(
' %s=%s' % (k, v) for k, v in record.__dict__.items()
if k not in {
'levelname', 'asctime', 'module', 'lineno', 'args', 'message',
'filename', 'exc_info', 'exc_text', 'created', 'funcName',
'processName', 'process', 'msecs', 'relativeCreated', 'thread',
'threadName', 'name', 'levelno', 'msg', 'pathname', 'stack_info',
})
if record.exc_info:
if not record.exc_text:
record.exc_text = self.formatException(record.exc_info)

View file

@ -13,11 +13,13 @@ def _console_msg(event):
evt = event['event']
if evt == 'up-to-date':
msg = 'up-to-date, version %s' % event['version']
del event['version']
elif evt == 'updated':
if event.get('old_version'):
msg = 'updated from %(old_version)s to %(version)s' % event
else:
msg = 'updated to %(version)s' % event
del event['version'], event['old_version']
else:
msg = evt
@ -37,10 +39,12 @@ def exc_info(logger, level, event):
def stdlib_renderer(logger, level, event):
# return event unchanged for further processing
std_event = _console_msg(event.copy())
logger = logging.getLogger(std_event.get('logger_name'))
msg = std_event.pop('msg', std_event['event'])
try:
logger = logging.getLogger(std_event.pop('logger_name'))
except KeyError:
logger = logging.getLogger()
msg = std_event.pop('msg', std_event.pop('event'))
exc_info = std_event.pop('exc_info', None)
# msg = f'{msg} {std_event!r}'
getattr(logger, level)(
msg, exc_info = exc_info, extra=std_event,
)