当使用 python 中的 logging
模块进行日志记录时。为每个类定义一个记录器是最佳实践吗?
考虑到某些事情会是多余的,例如文件日志位置,我正在考虑将日志记录抽象到它自己的类中,并将一个实例导入到我的每个需要日志记录的类中。但是我不确定这是否是最佳做法?
最佳答案
最佳实践是遵循 Python 的软件(分解)组合规则 - 模块是 Python 软件的单元,而不是类。因此,推荐的方法是使用
logger = logging.getLogger(__name__)
在每个模块中,并从主脚本配置日志记录(使用 basicConfig()
或 dictConfig()
)。
记录器是单例的 - 传递它们或将它们存储在类的实例中是没有意义的。
关于Python 日志记录方面的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22807972/