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

Python Logger错误流配置:保留ERROR级别且禁止终端输出

解决方案

方案一:移除StreamHandler(推荐)

既然目标是完全禁止终端输出日志,直接删除代码中创建StreamHandler的相关逻辑即可,转而只配置FileHandler将日志写入文件。示例代码如下:

import logging

# 配置FileHandler,将日志写入指定文件
file_handler = logging.FileHandler('app.log')
file_handler.setLevel(logging.ERROR)  # 保留你需要的ERROR级别

# 配置日志格式(可选,按需调整)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)

# 初始化根日志器并添加FileHandler
logger = logging.getLogger()
logger.setLevel(logging.ERROR)
logger.addHandler(file_handler)

# 测试:日志仅写入文件,终端无输出
try:
    1 / 0
except Exception:
    logger.exception('error')

方案二:重定向StreamHandler的输出流

如果因特殊需求必须保留StreamHandler对象,可将其输出流指向空设备,让日志直接被丢弃而不显示在终端:

Linux/macOS 环境

import logging
import os

stream_handler = logging.StreamHandler(stream=open(os.devnull, 'w'))
stream_handler.setLevel(logging.ERROR)  # 保留原有级别配置

# 后续添加FileHandler的逻辑同方案一...

Windows 环境

import logging
import os

stream_handler = logging.StreamHandler(stream=open('nul', 'w'))
stream_handler.setLevel(logging.ERROR)  # 保留原有级别配置

# 后续添加FileHandler的逻辑同方案一...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 06:37:10