我将Python的Tornado库用于我的web服务,我希望从我的代码和Tornado创建的每个日志都是json格式的。我试过在根记录器上设置格式化程序,设置格式化程序和所有其他记录器。这就是我目前正在尝试的黑客。在我看来它应该起作用。。。但是,当我运行这个应用程序时,Tornado的所有日志仍然是它们的标准格式。你知道吗
import logging
from tornado.log import access_log, app_log, gen_log
import logmatic
loggers = [
logging.getLogger(),
logging.getLogger('tornado.access'),
logging.getLogger('tornado.application'),
logging.getLogger('tornado.general'),
access_log,
gen_log,
app_log
]
json_formatter = logmatic.JsonFormatter()
for logger in loggers:
for hand in logger.handlers:
hand.setFormatter(json_formatter)
logging.getLogger('tornado.access').warning('All the things')
# WARNING:tornado.access (172.26.0.6) 0.47ms
# NOT JSON???
注意:当我在loggers
列表中包含服务logging.getLogger('myservice')
的记录器并运行它时,它们会获取更新的格式化程序并输出json。这排除了logmatic
格式化程序的问题。无法让格式化程序为龙卷风记录器工作。你知道吗
Tornado的记录器在calling loop.start()之前没有任何处理程序,因此应该向记录器添加具有预定义格式的处理程序。你知道吗
相关问题 更多 >
编程相关推荐