在我的Python脚本中,模块之间共享日志实例的惯用方法是什么?
我创建了一个简单的日志记录类,它使用COM互操作来连接到公司标准的日志记录器。我想在脚本开始时创建这个日志记录器的实例,然后用这个日志记录器让脚本中的所有模块都能集中记录日志。
有没有一种简单的方法可以让所有模块共享这个日志记录器的实例,而不需要在每个需要记录日志的类的构造函数中专门添加一个日志记录器的参数呢?
我应该使用全局变量,还是单例模式,或者还有其他推荐的方法来在模块之间共享这个日志记录器呢?
2 个回答
1
我会用模块来代替类,因为在Python中,模块本身就是单例的。
这里有几种方法可以参考这里。
6
你为什么不使用Python自带的日志功能,并写一个处理器来和你们公司标准的日志系统对接呢?Python的日志功能设计得很巧妙,你不需要在代码的不同层之间传递日志记录器的实例——Python的日志记录器本质上就是单例的。
而且,标准库的日志处理器也很容易写,网上有很多第三方处理器的例子可以参考。
声明一下:我是Python标准库日志包的维护者。