170 分 伦敦 Mario Corchero 是 Bloomberg 的高级软件开发人员,他使用 Python 和 C++ 编写小型可重用服务,以自动化新闻生成并管理新闻搜索的基础架构。 思想开放 新兴贡献者奖 2018 作者 Python 开发者 极客
作者评论
即使您可以使用模块级函数 (logging.info) 进行日志记录,这基本上只是使用根记录器进行日志记录。
您可以看到 `logging.info` 与 `logging.getLogger().info` 相同,它只是在根实例下进行日志记录。
话虽如此,问题就变成了:始终不使用根记录器有什么优势吗?
答案是调整。如果您正在开发单个脚本,这可能没问题(我经常这样做),但如果您正在开发更大的程序或库,您肯定想使用不同的记录器,以便在设置配置时,您可以决定如何处理来自该段代码的日志。
例如,如果您开发一个 http 库并将所有内容记录在 info 中,使用记录器层次结构允许您的库的用户只需通过将您的根记录器配置为仅发出高于 info 的记录来抑制所有 info 日志。
您还可以附加不同的处理程序并进行相应的调整。
简而言之,我的看法是
对于简单的脚本可能没问题,对于更复杂的解决方案,始终使用正确的记录器实例。
感谢您的阅读 :)
感谢您的阅读 :)