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

Azure DevOps流水线中Python logging日志全被识别为错误如何修复

问题根因

该问题和日志本身的级别无关,核心触发原因是Python logging模块默认的StreamHandler会将所有内容输出到stderr(标准错误流):

  • Azure DevOps流水线默认会将stderr输出的所有内容统一判定为错误级别
  • 绝大多数终端环境会默认将stderr输出的内容渲染为红色
    这就导致无论你打印什么级别的日志,都会被误识别为错误。
基础修复方案

核心修改是将控制台输出的流从默认的stderr改为stdout(标准输出流),同时补全日志目录自动创建逻辑,避免原代码中日期目录不存在时触发文件找不到报错。
完整修正代码如下:

import logging
import sys
import os
from datetime import datetime

# 提前创建按日期命名的日志目录
log_dir = "./logs/{:%d-%m-%Y}/".format(datetime.now())
os.makedirs(log_dir, exist_ok=True)
log_file_path = os.path.join(log_dir, "{:%Y-%m-%d-%H-%M-%S}.log".format(datetime.now()))

log = logging.getLogger()
logging.basicConfig(
    handlers=[
        logging.FileHandler(log_file_path, 'w', 'utf-8'),
        # 手动指定输出流为stdout,替换默认的stderr
        logging.StreamHandler(stream=sys.stdout)
    ],
    level=logging.INFO,
    format='[%(asctime)s] %(levelname)s - %(message)s',
    datefmt='%H:%M:%S'
)

修改后所有控制台日志都会走标准输出流,Azure DevOps不会再将INFO/WARNING级别日志误判为错误,终端也不会把所有日志都显示为红色。

进阶优化(级别分流方案)

如果需要严格对齐流的语义:让INFO/DEBUG/WARNING级别日志走标准输出,ERROR/CRITICAL级别日志仍然走标准错误流(方便流水线做错误告警、终端单独标红错误日志),可以使用双处理器分流配置,替换上述代码中basicConfig的handler配置即可:

# 标准输出处理器:仅处理INFO到WARNING级别的日志
stdout_handler = logging.StreamHandler(stream=sys.stdout)
stdout_handler.setLevel(logging.INFO)
stdout_handler.addFilter(lambda record: record.levelno < logging.ERROR)
stdout_handler.setFormatter(
    logging.Formatter('[%(asctime)s] %(levelname)s - %(message)s', datefmt='%H:%M:%S')
)

# 标准错误处理器:仅处理ERROR及以上级别的日志
stderr_handler = logging.StreamHandler(stream=sys.stderr)
stderr_handler.setLevel(logging.ERROR)
stderr_handler.setFormatter(
    logging.Formatter('[%(asctime)s] %(levelname)s - %(message)s', datefmt='%H:%M:%S')
)

logging.basicConfig(
    handlers=[
        logging.FileHandler(log_file_path, 'w', 'utf-8'),
        stdout_handler,
        stderr_handler
    ],
    level=logging.INFO
)
注意事项

logging.basicConfig必须在所有打印日志的代码之前调用,否则配置不会生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 20:45:31