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

如何保留自定义DEBUG日志同时屏蔽Loguru框架下的冗余日志

解决自动化测试框架中第三方日志干扰的方案

1. 精准控制pytest的日志捕获范围

Captured log setup/call/teardown是pytest自动捕获的第三方日志,可以通过配置限制pytest仅捕获你自己的日志输出,屏蔽第三方内容:

方法1:修改pytest.ini配置文件

在项目根目录的pytest.ini中添加以下内容:

[pytest]
log_cli = true
log_cli_level = DEBUG
log_cli_filter = pages.actions.*,your.custom.logger.*

其中pages.actions.*对应你示例中pages.actions.signin_page的日志器前缀,your.custom.logger.*替换为你自己的其他日志器标识,这样pytest只会捕获指定范围内的日志,第三方的urllib3、faker、WDM日志不会被打印为Captured log系列内容。

方法2:在conftest.py中动态配置

若不想使用配置文件,可在conftest.py通过钩子函数设置:

import pytest

def pytest_configure(config):
    config.option.log_cli = True
    config.option.log_cli_level = "DEBUG"
    # 仅过滤自己的日志器
    config.option.log_cli_filter = "pages.actions.*,your.custom.logger.*"

2. 直接屏蔽第三方日志器输出

不管使用logging还是Loguru,都可以直接给第三方日志器设置更高级别或禁止传播:

针对urllib3、faker

import logging

for logger_name in ["urllib3", "faker"]:
    logger = logging.getLogger(logger_name)
    logger.setLevel(logging.WARNING)
    # 禁止日志向父级传播
    logger.propagate = False

针对WDM

之前设置环境变量的方式可能未生效,直接操作WDM的日志器:

logging.getLogger("WDM").setLevel(logging.NOTSET)
# 或彻底禁用传播
logging.getLogger("WDM").propagate = False

如果用Loguru,还可以通过过滤器拦截WDM日志:

from loguru import logger
import sys

logger.remove()
logger.add(
    sys.stderr,
    level="DEBUG",
    filter=lambda record: "WDM" not in record["message"] and not record["message"].startswith("[WDM]")
)

3. Loguru专属过滤方案

若全程使用Loguru,可利用其过滤功能仅保留你自己的日志:

from loguru import logger
import sys

# 清除默认输出处理器
logger.remove()
# 添加自定义过滤的输出,仅保留指定模块的日志
logger.add(
    sys.stderr,
    level="DEBUG",
    filter=lambda record: record["name"].startswith("pages.actions.")
)

这样只有pages.actions前缀的日志会被打印,第三方日志全被过滤,同时保留你的DEBUG级别日志。

效果验证

执行测试时,你自定义的2022-11-30 15:11:30 - pages.actions.signin_page - DEBUG - Click on signin button这类日志会正常显示,urllib3、faker、WDM的日志以及Captured log系列内容会被隐藏,错误回溯信息也不会丢失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 09:31:33