Python 中有没有办法获取所有已定义记录器的列表?
我的意思是,是否存在诸如 logging.getAllLoggers()
类的东西,它会返回 Logger
对象的列表?
我搜索了 python.logging 文档,但找不到这样的方法。
原文由 mistiru 发布,翻译遵循 CC BY-SA 4.0 许可协议
Python 中有没有办法获取所有已定义记录器的列表?
我的意思是,是否存在诸如 logging.getAllLoggers()
类的东西,它会返回 Logger
对象的列表?
我搜索了 python.logging 文档,但找不到这样的方法。
原文由 mistiru 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您还想在列表中包含 RootLogger,请执行类似以下操作:
import logging
loggers = [logging.getLogger()] # get the root logger
loggers = loggers + [logging.getLogger(name) for name in logging.root.manager.loggerDict]
在 Python 3.7.4 上测试
原文由 Jonathan L 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
记录器由
logging.Manager
实例保存在层次结构中。您可以在根记录器上查询manager
以获取它知道的记录器。调用
getLogger(name)
确保loggerDict
持有的任何占位符记录器在添加到列表时被完全初始化。