在Python/Django中设置所有记录器的全局最小日志记录级别

Val*_*yal 6 python django logging

在调用我的应用程序时,我希望能够(从配置或命令行或环境变量)读入所有记录器中的最小日志记录级别,然后全局设置日志记录模块以尊重此MIN_LOGGING_LEVEL.

例如,像这样的东西(不存在): logging.setLevel(logging.INFO)

我知道我可以在记录器和处理程序上单独设置日志记录级别,并为处理程序创建过滤器以尊重DEBUG标志之类的内容.但是,我真正想要的是能够在调用时更改所有记录器的最小日志级别(例如,取决于环境).

我是否必须自己滚动并在运行时动态构造配置才能实现此目的?或者有没有更好的方式或模式,我没有看到?

Sim*_*ser 7

您可以使用logging.disable- 以下确保logging.INFO以下内容被禁用:

logging.disable(logging.INFO)
Run Code Online (Sandbox Code Playgroud)

从文档:

它的作用是禁用所有严重性为lvl及以下的日志记录调用,这样如果用值INFO调用它,那么所有INFO和DEBUG事件都将被丢弃,而严重性为WARNING及以上的事件将根据记录器的处理进行处理.有效水平.

要在以后撤消它,您可以致电:

logging.disable(logging.NOTSET)
Run Code Online (Sandbox Code Playgroud)

  • 有没有类似的`enable`函数之类的? (2认同)