【发布时间】:2015-06-19 19:00:33
【问题描述】:
我正在使用 Python/Flask 应用程序并尝试在 json 中(按行)格式化日志。
使用 python-json-logger 包,我修改了 app.logger 的格式化程序如下:
from pythonjsonlogger import jsonlogger
formatter = jsonlogger.JsonFormatter(
'%(asctime) %(levelname) %(module) %(funcName) %(lineno) %(message)')
app.logger.handlers[0].setFormatter(formatter)
这按预期工作。任何传递给 app.logger 的消息都以 json 格式正确显示。
但是,应用程序也会自动记录所有请求。此信息在标准输出中显示如下:
127.0.0.1 - - [19/Jun/2015 12:22:03] "GET /portal/ HTTP/1.1" 200 -
我也希望将这些信息格式化为 json。我一直在寻找负责创建此输出的记录器/代码,但没有成功。
这个输出是在哪里生成的? 是否有更改此记录信息格式的机制?
【问题讨论】:
-
您看到的这些日志可能来自您正在使用的 Web 服务器,而不是来自您的
wsgi应用程序。您使用的是哪个服务器? -
@MartijnPieters 你可能是对的,但
Flask记录访问请求是没有意义的,因为它不应该是它的工作 -
@sirfz:除了,它没有。事实上你是对的。