python 日志模块再熟悉

简述

为什么flask会自动打印请求access log ?
为什么flask会出现重复打印或不打印的问题?
supervisor + gunicorn + flask的部署组合到底哪个组件在打印?
开发模块应该怎样配置日志?

python日志模块的逻辑

官方文档的日志处理流程。
python 日志模块再熟悉

logging模块的几个核心类:logger,filter,log level,handler。

python logging在一个进程内一个logger只有一个实例,通过name属性唯一确定。logger之间有等级关系,等级通过name属性的点运算符“.”区分,与子模块的概念类同。
python 总有一个root logger,当不显式创建logger时,默认将使用这个logger。

log level 出现在两个地方,任意一个地方不通过检测那么日志都不会得到处理。

简单使用

# todo:

问题解答

为什么flask会重复打印或不打印?