使用Flask和本地Python日志记录?

8

Flask日志记录(例如,app.logger.info(...)等)的问题在于子模块不使用它,因此我认为全局配置应用程序日志记录的唯一方法是通过底层的Python日志记录机制:例如,

logging.config.fileConfig('config/logging.conf')

但这不会配置Flask的默认处理程序,例如,HTTP日志记录未配置。因此,我得到混合的日志:
2015-07-28 14:57:47,320 [main.py][INFO] Starting...           # Python log
[2015-07-28 14:58:49] "GET /demo HTTP/1.1" 200 956 0.318825   # Flask log

有人能建议全局配置日志记录的标准实践吗?我希望通过配置文件轻松配置单独的包。

另外,我似乎无法删除将HTTP日志(GET等)输出到stderr的功能(我认为这来自werkzeug);设置logging.getLogger('werkzeug').setLevel()只影响与HTTP日志无关的werkzeug日志。

谢谢。

1个回答

1
我很确定Flask文档中有关于这个的内容: https://flask.palletsprojects.com/en/1.1.x/logging/#other-libraries 基本上建议将其他库的处理程序添加到Flask的根目录中。这是他们给出的例子:
from flask.logging import default_handler

root = logging.getLogger()
root.addHandler(default_handler)
root.addHandler(mail_handler)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接