使用 logging + rich 美化 VSCode/Cursor 调试输出
🌈 使用 logging + rich 美化 VSCode 调试输出
一、为什么使用 logging + rich
- logging 是 Python 官方提供的日志系统,支持分级(INFO、WARNING、ERROR 等)和可配置输出。
- rich 可以让日志输出带颜色、时间戳、模块名等信息更易读。
- 两者结合后,你的调试输出比 print() 更强大、更清晰。
二、安装
在终端执行:
pip install rich
三、基本使用示例
文件名:demo_log_rich.py
from rich.logging import RichHandler
import logging
# 1️⃣ 配置 logging 基础设置
logging.basicConfig(
level="INFO", # 日志等级,可选 DEBUG, INFO, WARNING, ERROR, CRITICAL
format="%(message)s", # rich 会自动格式化输出,不需要复杂模板
datefmt="[%X]", # 时间显示格式,例如 [14:32:05]
handlers=[RichHandler()] # 使用 RichHandler 代替默认控制台输出
)
# 2️⃣ 创建 logger 对象
log = logging.getLogger("rich")
# 3️⃣ 打印不同级别的日志
log.debug("这是调试信息(debug),默认不会显示")
log.info("系统启动成功 ✅")
log.warning("⚠️ 资源占用较高,请注意")
log.error("❌ 发生错误:连接超时")
log.critical("🔥 严重错误,系统即将退出")
四、输出效果(在 VSCode 终端中)
运行后你会看到带颜色和时间戳的输出,例如:
[14:32:05] INFO 系统启动成功 ✅
[14:32:05] WARNING ⚠️ 资源占用较高,请注意
[14:32:05] ERROR ❌ 发生错误:连接超时
[14:32:05] CRITICAL 🔥 严重错误,系统即将退出
颜色和图标帮助你快速识别日志等级。
五、在 VSCode 调试中启用彩色日志
VSCode 默认的 “Debug Console” 不显示颜色。需要在 launch.json 中将 console 设置为 integratedTerminal。
打开 .vscode/launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Debug with Rich Logging",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
}
]
}
然后重新点击 “Run and Debug”,就能看到彩色日志了。
六、进阶:同时输出到文件与终端
如果你既想在终端看到彩色日志,又想保存纯文本日志,可以这样做:
from rich.logging import RichHandler
import logging
# 文件输出
file_handler = logging.FileHandler("app.log", encoding="utf-8")
# rich 输出
rich_handler = RichHandler(rich_tracebacks=True)
logging.basicConfig(
level="INFO",
format="%(asctime)s - %(levelname)s - %(message)s",
datefmt="[%Y-%m-%d %H:%M:%S]",
handlers=[file_handler, rich_handler]
)
log = logging.getLogger("app")
log.info("程序启动中...")
log.warning("磁盘空间不足")
log.error("请求接口失败")
这样:
- 终端中输出彩色日志;
- app.log 文件中保存纯文本日志。
七、进阶:美化异常输出
如果希望异常信息(traceback)也能彩色显示:
from rich.traceback import install
install() # 安装 rich 的异常追踪美化
# 故意触发一个错误
x = 1 / 0
输出会是高亮、带行号的堆栈信息。
✅ 总结推荐配置
| 目标 | 推荐做法 | | — | — | | 彩色终端日志 | logging + RichHandler() | | 彩色异常信息 | from rich.traceback import install() | | VSCode 调试时有颜色 | “console”: “integratedTerminal” | | 同时保存日志文件 | handlers=[FileHandler, RichHandler] |