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

如何将DEBUG日志写入文件并屏蔽控制台输出,捕获requests连接日志

解决方案

要实现将requests的DEBUG日志写入文件且控制台无任何输出,需从以下几个方面调整代码:

核心问题分析

原代码存在两个关键问题:

  • logging.basicConfig默认会添加控制台输出处理器(StreamHandler),导致所有符合级别要求的日志会打印到控制台;
  • requests底层依赖的urllib3模块会生成独立的DEBUG日志,这类日志不会自动流向你自定义的_developertest_log logger。

具体调整步骤

  • 移除logging.basicConfig的自动控制台处理器:直接不依赖basicConfig,手动管理所有日志处理器;
  • 为urllib3的logger添加文件处理器,确保其生成的DEBUG日志能写入目标文件;
  • 删除或注释所有print语句,避免控制台输出非日志内容;
  • 关闭所有logger的日志传播,防止日志重复输出或流向控制台。

完整修改后的代码

import logging
import datetime
import requests
import warnings

def log_file(log_name):
    log_day = datetime.datetime.now().strftime('%d-%m-%Y')
    log_name = '/sample1/log_basics/' + log_day + "_" + log_name
    return log_name

# 创建统一的文件处理器,用于所有日志写入
log_handler = logging.FileHandler(log_file("_developertest_log.log"))
log_handler.setLevel(logging.DEBUG)
log_handler.setFormatter(logging.Formatter('%(asctime)s:%(levelname)s:%(message)s'))

# 配置自定义业务logger
custom_logger = logging.getLogger("_developertest_log")
custom_logger.setLevel(logging.DEBUG)
custom_logger.propagate = False
custom_logger.addHandler(log_handler)

# 配置urllib3的logger(requests底层依赖),捕获其DEBUG日志
urllib3_logger = logging.getLogger("urllib3")
urllib3_logger.setLevel(logging.DEBUG)
urllib3_logger.propagate = False
urllib3_logger.addHandler(log_handler)

# 清空根logger的默认处理器,彻底杜绝控制台输出
root_logger = logging.getLogger()
for handler in root_logger.handlers[:]:
    root_logger.removeHandler(handler)

def process2(abc):
    # 注释原有print语句,避免控制台输出
    # print("Going to check: "+str(abc))
    custom_logger.info("Going to check test1: "+str(abc))
    x = requests.get('https://w3schools.com/python/demopage.htm')
    # 注释原有print语句,避免控制台输出
    # print(x.text)

abc = "68485"
process2(abc)

效果验证

运行修改后的代码:

  • 控制台无任何输出内容;
  • 指定路径的日志文件中会同时包含自定义业务的INFO日志,以及urllib3生成的DEBUG日志(形如2024-04-02 11:42:05,369:DEBUG:Starting new HTTPS connection (1): w3schools.com:443)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 18:16:23