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

如何拦截Mega类upload方法中的logger.info日志并输出到控制台

解决Mega上传时无法显示INFO日志的问题

问题原因

Python标准库logging默认只输出WARNING及更高级别的日志,而mega.mega模块中使用的logger.info()属于INFO级别,且该模块的Logger默认没有配置控制台输出的Handler,导致这些日志无法在控制台显示。

解决方案

方案1:单独配置mega.mega的Logger(推荐)

仅针对目标模块的Logger配置,避免干扰其他第三方库的日志输出:

import logging
from mega.mega import Mega

# 获取mega.mega模块对应的Logger实例
mega_logger = logging.getLogger('mega.mega')
# 设置日志级别为INFO,确保INFO及以上日志被处理
mega_logger.setLevel(logging.INFO)

# 添加控制台输出Handler
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)

# 可选:自定义日志格式
log_formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
console_handler.setFormatter(log_formatter)

# 将Handler绑定到mega的Logger
mega_logger.addHandler(console_handler)

# 正常执行上传流程
email = "你的邮箱地址"
password = "你的密码"
mega = Mega()
m = mega.login(email, password)
m.upload('sample_file.txt')

方案2:配置全局根Logger

如果需要所有模块的INFO级别日志都输出到控制台,可直接配置根Logger:

import logging
from mega.mega import Mega

# 全局配置日志级别和格式
logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)

# 正常执行上传流程
email = "你的邮箱地址"
password = "你的密码"
mega = Mega()
m = mega.login(email, password)
m.upload('sample_file.txt')

补充说明

  • 方案1更精准,仅对mega.mega模块生效,不会输出其他库的冗余日志;
  • 方案2会让所有使用logging的模块都输出INFO及以上日志,适合多模块调试场景;
  • 若配置后仍无日志输出,可检查mega.mega模块是否设置了logger.propagate = False(默认值为True,允许日志向上传播到根Logger)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 16:57:47