【发布时间】:2010-09-18 16:00:57
【问题描述】:
我开始进入 Python 日志记录模块,但除非我希望所有消息都说“root”,否则我必须为每个模块创建一个记录器,而且一遍又一遍地这样做有点痛苦。
我想如果有一个神奇的__logger__() 方法可以为当前模块返回一个记录器,并在必要时创建它会很方便。可以在没有括号的情况下调用的魔术__logger__ 变量会更好。我该怎么办?
例如,在一个名为 foo 的模块中,我可以调用 __logger__.debug('this is a debug message for the foo module'),它会在我的控制台中显示为:
DEBUG:foo:这是 foo 模块的调试消息
【问题讨论】:
-
您实际上并没有使用 Lie Ryan 的答案创建记录器,您只是获得了对具有本地名称的标准记录器的引用。换句话说,日志记录模块已经完成了您所要求的大部分工作。
-
澄清:我已经知道为当前模块检索记录器的手动方式。我想知道的是如何/是否可以向所有 Python 模块添加魔术方法,这样我就不必在我想登录的每个模块中重新输入相同的代码。
-
我认为没有任何方法可以做到这一点,为了最简单的使用,您必须先使用
import logging,然后使用logging.log()(或其中一种方便的方法)。这不是很多工作,您可以使用print进行更简单的用途。
标签: python logging module magic-methods