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

如何禁用导入GluonCV模块自带的logging.basicConfig 覆盖原有日志配置

覆盖第三方模块自带的logging配置的方法

问题原因:logging.basicConfig的设计是仅当根日志记录器没有任何已绑定的处理器时才会生效,你导入的模块在你的日志配置执行前先调用了该方法,抢占了根日志器的配置权,导致你的自定义配置不生效。


方法一:调整导入顺序(最推荐)

只要把你自己的日志配置代码放在导入目标模块的代码之前即可,模块内的logging.basicConfig遇到已经配置过的根日志器会自动跳过,不会覆盖你的配置。
示例代码:

import logging

# 第一步:先配置你的自定义日志
logging.basicConfig(
    level=logging.DEBUG,
    format="%(asctime)s | %(name)s | %(levelname)s | %(message)s",
    # 可添加其他自定义配置,比如输出到文件、添加过滤器等
)

# 第二步:再导入目标模块
from gluoncv.torch.data.gluoncv_motion_dataset.dataset import 你需要的类/方法

方法二:重置根日志器后重新配置

如果你的代码结构不允许调整导入顺序,可以先清空根日志器已经被模块添加的处理器,再重新执行你的自定义配置。
示例代码:

import logging

# 先导入目标模块(允许模块先执行它自带的日志配置)
from gluoncv.torch.data.gluoncv_motion_dataset.dataset import 你需要的类/方法

# 清空根日志器的所有已有处理器
for handler in logging.root.handlers[:]:
    logging.root.removeHandler(handler)

# 重新执行你的自定义日志配置
logging.basicConfig(
    level=logging.DEBUG,
    format="%(asctime)s | %(name)s | %(levelname)s | %(message)s"
)

方法三:单独限制目标模块的日志输出

如果你不需要修改全局日志配置,只是不想看到该模块输出的冗余INFO日志,可以单独获取该模块的日志记录器,自定义它的日志级别:

import logging

# 导入目标模块
from gluoncv.torch.data.gluoncv_motion_dataset.dataset import 你需要的类/方法

# 获取该模块对应的日志记录器,单独设置日志级别
module_logger = logging.getLogger("gluoncv.torch.data.gluoncv_motion_dataset.dataset")
module_logger.setLevel(logging.WARNING) # 仅输出警告及以上级别的日志,过滤INFO及以下内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:54:04