我有一些代码创建了一个根记录器,它将消息保存在磁盘上。非常标准的。我的代码使用的pypsexec
模块往往过于冗长,我希望能够:1-继续创建我自己的日志信息INFO而2-抑制来自pypsexec的小于WARNING
的日志记录我该怎么做呢?
来自pypsexec的文档提到我应该使用这样的东西:
import logging
logger = logging.getLogger("pypsexec")
logger.setLevel(logging.DEBUG) # set to logging.INFO if you don't want DEBUG logs
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - '
'%(message)s')
ch.setFormatter(formatter)
logger.addHandler(ch)
但是,我已经有了一个作为根记录器创建的记录器对象。我不知道如何保持我的根记录器,记录我的调试消息为INFO,同时限制由pypsexec记录的消息是警告和上升?
,
我也试过了:
import logging
from pypsexec.client import log as psexec_logger
psexec_logger.setLevel(logging.WARNING)
但是我仍然得到像这样的pypsexec日志示例:
12/23/2022 03:19:20 PM - INFO Initialising connection, guid: c7745e58-b06e-4db4-b6de-b11fa0293f13, require_signing: True, server_name: xxxxxx.xxx.xxx, port: 445
12/23/2022 03:19:20 PM - INFO Initialising session with username: domainuseraccount
我找到了自己问题的答案。问题是,记录的消息实际上不是来自pypsexec,而是来自pypsexec正在使用的包。我必须跟踪代码以确定smbprotocol生成了冗长的消息。
我所要做的就是:logging.getLogger('smbprotocol').setLevel(logging.WARNING)