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

rsb*_*rsb 6 python werkzeug flask

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

logging.config.fileConfig('config/logging.conf')
Run Code Online (Sandbox Code Playgroud)

但是这不配置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
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议通过配置文件全局配置日志记录的标准做法(即,以便我可以轻松配置单个包).

此外,我似乎无法将HTTP日志记录(GET等)移除到stderr(我认为它来自werkzeug); 设置logging.getLogger('werkzeug').setLevel()仅影响与HTTP日志记录无关的werkzeug日志.

谢谢.

Gij*_*ben 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)
Run Code Online (Sandbox Code Playgroud)