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

如何让VS Code调试控制台按Python日志级别显示对应颜色?

解决VS Code调试控制台Python日志颜色不匹配问题

问题原因

Python的logging模块默认将所有日志输出到stderr流,而VS Code调试控制台会把stderr中的内容统一识别为错误级别,因此无论你的日志实际级别是info还是warning,都会套用debugConsole.errorForeground的颜色,导致显示不符合预期。

解决方案

1. 手动配置Logging流与格式

通过为不同日志级别指定输出流,并添加明确的级别标识,让VS Code能正确识别日志级别:

修改你的测试代码如下:

import logging
import sys

# 初始化日志器
_logger = logging.getLogger(__name__)
_logger.setLevel(logging.DEBUG)
_logger.handlers.clear()  # 清除默认handler,避免重复输出

# 创建stdout处理器,处理INFO及以下级别日志
stdout_handler = logging.StreamHandler(sys.stdout)
stdout_handler.setLevel(logging.INFO)
# 创建stderr处理器,处理WARNING及以上级别日志
stderr_handler = logging.StreamHandler(sys.stderr)
stderr_handler.setLevel(logging.WARNING)

# 设置日志格式,必须包含%(levelname)s,VS Code依赖此字段识别级别
formatter = logging.Formatter('%(levelname)s: %(message)s')
stdout_handler.setFormatter(formatter)
stderr_handler.setFormatter(formatter)

# 添加处理器到日志器
_logger.addHandler(stdout_handler)
_logger.addHandler(stderr_handler)

if __name__ == "__main__":
    _logger.info('Test info')
    _logger.warning('Test warning')
    _logger.error('Test error')

2. 启用VS Code Python扩展的日志自动识别功能

在VS Code的settings.json中添加以下配置,让Python扩展自动解析日志级别:

"python.logging.enabled": true,
"python.logging.promptToConfigure": false

确保你的launch.json中console字段保持为internalConsole(你当前的配置已满足),扩展会自动识别日志输出中的级别标识,并对应到你设置的debugConsole颜色。

3. 验证颜色配置

确认你的settings.json中的颜色设置正确(你当前的配置没问题):

"debugConsole.infoForeground": "#ffffff",
"debugConsole.warningForeground": "#fddf00",
"debugConsole.errorForeground": "#69ba63",
"debugConsole.sourceForeground": "#c2c900"

完成以上配置后,重新启动调试,日志就会按对应级别显示颜色了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 16:15:38