python - 更好的整个包的日志系统

标签 python logging package

我有一个大包(由 2 打模块组成),我将它们全部记录到一个文件中。

我一直通过创建一个Python“日志记录”模块对象,并将该对象传递给不同的实例和方法来做到这一点。

是否有更好的方法在包的多个模块中使用单个记录器?

谢谢!

-----附录-----

创建一个包含记录器对象的根类,然后从该类继承每个类对象,这是否有用/Pythonic?

它可以解决类的问题,但不一定能解决从非类模块导入的独立方法...

最佳答案

如果您确实只需要一个记录器,那么您不妨使用根记录器。无需传递记录器,只需从每个模块中的日志记录模块获取它即可:

import logging
logger = logging.getLogger()
logger.debug('Heya')

但是,常见的推荐模式是使用命名记录器,将第二行替换为:

logger = logging.getLogger(__name__)

这为以后轻松更改日志记录配置以将某些日志定向到其他地方或更改其日志记录级别等打开了大门。

关于python - 更好的整个包的日志系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24928086/

相关文章:

Python - 文件中的元组列表

Python:可寻址IP地址列表

c - 获取调用函数的C文件名

angularjs - Angular Analytics Splunk日志记录

将新包版本上传到 nuget.org

Python列表中的列表操作

python - 在 Django 项目中使用哪个动态国际化系统?

c# - 用于滚动文件接收器的 Serilog 机器名称增强器

r - furrr 没有找到自己的包

Python - 为什么导入子模块会使包可见?