我正在开发一个可重用的Python模块(如果重要的话,用于Python 2.7)。我想知道对于希望将我的模块包含在具有自己的日志记录方法的更大框架中的其他人来说,最佳实践是什么。
是否有一种标准方法可以在我的模块中设置日志记录,以使用外部调用程序定义的任何记录器?
答案 0 :(得分:7)
这是一篇很棒的博客文章,概述了一些我尝试采用的最佳实践:http://eric.themoritzfamily.com/learning-python-logging.html
他详细介绍了所有细节和理由,但基本上归结为几个简单的原则。
根据您的模块getLogger
使用__name__
并开始记录:
import logging
logger = logging.getLogger(__name__)
logger.info( ... )
logger.debug( ... )
不要定义处理程序或在模块中配置适当的日志级别,因为它们可能会干扰"外部呼叫程序"你记得。您(或您的用户)可以根据需要在主应用程序代码中为所有子模块设置处理程序和所需的日志记录详细信息级别。