You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为根日志器与pypsexec模块设置不同日志级别

如何保留自身INFO日志并屏蔽pypsexec的低级别日志?

要实现你的需求,核心是正确控制pypsexec命名空间下所有日志器的级别,同时阻止其日志传播到根日志器。之前的尝试无效,大概率是因为没有拿到pypsexec的根日志器,且未关闭日志传播。

解决方案代码

import logging

# 获取pypsexec的根日志器(覆盖所有子模块的日志配置)
psexec_logger = logging.getLogger("pypsexec")
# 设置仅输出WARNING及以上级别日志
psexec_logger.setLevel(logging.WARNING)
# 禁止pypsexec的日志传播到根日志器
psexec_logger.propagate = False

为什么之前的方法无效?

  • pypsexec内部各个模块通常使用logging.getLogger(__name__)创建日志器,这些日志器都属于pypsexec命名空间的子日志器,会继承根日志器的配置。你之前导入的pypsexec.client.log只是单个模块的日志实例,无法覆盖整个库的日志行为。
  • 如果不关闭propagate,即使设置了pypsexec日志器的级别,它仍会将日志传递给根日志器。若你的根日志器级别是INFO,这些低级别日志还是会被根日志器输出。

验证方法

可以打印所有pypsexec相关日志器的配置,确认设置生效:

for logger_name in logging.Logger.manager.loggerDict:
    if logger_name.startswith("pypsexec"):
        logger = logging.getLogger(logger_name)
        print(f"Logger: {logger_name}, Level: {logging.getLevelName(logger.level)}, Propagate: {logger.propagate}")

注意事项

确保你的根日志器级别保持为logging.INFO,这样自身代码的INFO级日志会正常输出,不受pypsexec配置的影响。

内容的提问来源于stack exchange,提问作者Ben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 06:35:27