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

如何配置Uvicorn/FastAPI无彩色JSON日志并移除color_message字段?

解决Uvicorn/FastAPI JSON日志中color_message字段的问题

方案1:在日志配置文件中直接禁用颜色输出

由于指定日志配置文件时--no-use-colors参数不生效,可直接在配置里给Uvicorn相关的日志处理器添加use_colors=False参数,从源头阻止颜色消息生成:

{
  "handlers": {
    "uvicorn": {
      "class": "logging.StreamHandler",
      "formatter": "json",
      "stream": "ext://sys.stdout",
      "use_colors": false
    }
  },
  "formatters": {
    "json": {
      "class": "pythonjsonlogger.jsonlogger.JsonFormatter"
    }
  },
  "loggers": {
    "uvicorn": {
      "handlers": ["uvicorn"],
      "level": "INFO"
    }
  }
}

方案2:用pythonjsonlogger的字段过滤排除color_message

无需继承重写格式化器,直接在JsonFormatter配置里指定要输出的字段列表,忽略color_message:

{
  "formatters": {
    "json": {
      "class": "pythonjsonlogger.jsonlogger.JsonFormatter",
      "format": "%(levelname)s %(message)s %(asctime)s %(name)s %(module)s"
    }
  }
}

格式化器只会输出你指定的字段,color_message会被自动排除。

方案3:代码启动Uvicorn时直接禁用颜色

如果通过代码而非命令行启动Uvicorn,可直接在启动参数中设置use_colors=False:

import uvicorn
from fastapi import FastAPI

app = FastAPI()

if __name__ == "__main__":
    uvicorn.run(
        app,
        host="0.0.0.0",
        port=8000,
        use_colors=False,
        log_config="logging.json"
    )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 20:04:52