这是由X.Jacobs提供的答案How to get non-blocking/real-time behavior from Python logging module? (output to PyQt QTextBrowser)的后续问题。将自定义处理程序添加到没有记录器实例的Python记录模块中?
在Python日志记录模块中,添加自定义处理程序的常规方法是定义一个继承自logging.Handler
(我们称之为CustomLogHandler
)的处理程序类。将其附加到logging
过程中,我们通常是这样做:
import logging
class CustomLogHandler(logging.Handler):
... (some code here)...
logger = logging.getLogger()
logger.addHandler(CustomLogHandler)
其中addHandler
是logger
实例的方法。
问题:假设我们没有想得到logger
(即我们不想上面做的)。是否可以附加CustomLogHandler
到logging
本身?
有关上下文的信息,请参阅How to get non-blocking/real-time behavior from Python logging module? (output to PyQt QTextBrowser)中的注释。
前提是可以使用自定义处理程序,而不必参考logger
实例。
当你将'CustomLogHandler'附加到'logging'本身'时,你期望发生什么? –
我期待使用'logging.error()'而不是'logger.error()'。 – Gilead
我不确定为什么这会被downvoted(无论它是谁) - 这个问题是合理的。给出的答案也是正确的。 – Gilead