适用于与其他代码一起使用的可重用模块的Python日志最佳实践
我正在开发一个可以重复使用的Python模块(如果重要的话,是针对Python 2.7的)。我想知道在日志记录方面有哪些最佳实践,特别是对于那些希望在自己的框架中使用我的模块的人,因为他们的框架有自己的一套日志记录方式。
有没有一种标准的方法可以在我的模块中设置日志记录,以便使用外部调用程序已经定义的日志记录器?
1 个回答
11
这里有一篇很棒的博客文章,里面总结了一些最佳实践,我也试着把这些方法用到自己的项目中:http://eric.themoritzfamily.com/learning-python-logging.html
文章详细讲解了每个细节和背后的原因,但总的来说,可以归结为几个简单的原则。
使用
getLogger
,根据你模块的__name__
来开始记录日志:import logging logger = logging.getLogger(__name__) logger.info( ... ) logger.debug( ... )
不要在你的模块中定义处理程序或设置合适的日志级别,因为这样可能会干扰你想要的“外部调用程序”。你(或者你的用户)可以在主应用程序代码中为所有子模块设置处理程序和所需的日志详细程度。