![](/img/trans.png)
[英]Python: How to create and use a custom logger in python use logging module?
[英]Adding custom handler to Python logging module without a logger instance?
这是答案的后续问题, 如何从Python日志记录模块获取非阻塞/实时行为? (输出到PyQt QTextBrowser)由X.Jacobs提供。
在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
本身?
请参阅“ 如何从Python日志记录模块获取非阻塞/实时行为”中的评论? (输出到PyQt QTextBrowser)作为上下文。
前提是可以使用自定义处理程序,而无需引用logger
实例。
logging.getLogger()
返回根记录器实例,该对象没有进一步的“启动”,并且没有其他东西可以将处理程序附加到根之外。
诸如logging.error()
类的模块级功能使用root logger。 引用文档 :
logging.error(msg[, *args[, **kwargs]])
在根记录器上记录错误级别为ERROR的消息。 参数解释为debug()。
换句话说, logging.error()
类的函数只需调用getLogger().error()
。
将CustomLogHandler
附加到根记录器是将其添加到模块的正确方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.