直接实例化 logger (LOG001)
源自 flake8-logging 代码检查器。
有时提供修复。
作用
检查是否直接实例化 logging.Logger
,而不是使用 logging.getLogger()
。
为什么这不好?
Logger 对象 文档指出:
请注意,不应该直接实例化 Logger,而应该始终通过模块级别的函数
logging.getLogger(name)
。
如果直接实例化 logger,它将不会被添加到 logger 树中,并且会绕过所有配置。记录到它的消息只会发送到“最后的处理程序”,跳过任何过滤或格式化。
示例
建议改为
修复安全性
此修复始终是不安全的,因为从 Logger
更改为 getLogger
会通过将 logger 添加到日志树来更改程序行为。