我有一个大包(由 2 打模块组成),我将它们全部记录到一个文件中。
我一直通过创建一个Python“日志记录”模块对象,并将该对象传递给不同的实例和方法来做到这一点。
是否有更好的方法在包的多个模块中使用单个记录器?
谢谢!
-----附录-----
创建一个包含记录器对象的根类,然后从该类继承每个类对象,这是否有用/Pythonic?
它可以解决类的问题,但不一定能解决从非类模块导入的独立方法...
最佳答案
如果您确实只需要一个记录器,那么您不妨使用根记录器。无需传递记录器,只需从每个模块中的日志记录模块获取它即可:
import logging
logger = logging.getLogger()
logger.debug('Heya')
但是,常见的推荐模式是使用命名记录器,将第二行替换为:
logger = logging.getLogger(__name__)
这为以后轻松更改日志记录配置以将某些日志定向到其他地方或更改其日志记录级别等打开了大门。
关于python - 更好的整个包的日志系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24928086/