Gunicorn 访问日志格式详解与自定义

Gunicorn 访问日志默认类似 Apache combined 格式,用 --access-logformat 自定义:%(h)s 客户端 IP、%(r)s 请求行、%(s)s 状态码、%(D)s 响应微秒等。本文给出变量表与 JSON 格式示例。

最佳实践
Gunicorn 访问日志格式详解与自定义封面

Gunicorn 访问日志默认格式类似 Apache combined:%(h)s %(l)s %(u)s %(t)s "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s";用 --access-logformat 或配置文件的 access_log_format 自定义。

常用变量速查

变量 含义
%(h)s 客户端 IP
%(t)s 时间
%(r)s 请求行(方法+路径+协议)
%(s)s 状态码
%(b)s 响应体字节数
%(f)s / %(a)s Referer / User-Agent
%(D)s 响应耗时(微秒)
%(T)s 响应耗时(秒)
%({X-Forwarded-For}i)s 任意请求头

自定义示例:输出 JSON

gunicorn app:app \
  --access-logfile - \
  --access-logformat '{"ip":"%(h)s","method":"%(m)s","path":"%(U)s","status":%(s)s,"duration_us":%(D)d,"ua":"%(a)s"}'

JSON 格式便于日志平台直接解析,无需 grok。生产排障最有价值的补充变量是 %(D)s(响应耗时)

观测云对照

JSON 访问日志经观测云 DataKit 采集后自动结构化,接口耗时可聚合分析并与 APM 链路关联。

常见问题(FAQ)

Q:修改后何时生效? 重启 Gunicorn;--reload 模式下改配置也会重载。

Q:能关掉访问日志只留错误日志吗? --access-logfile 不设置即关闭;错误日志用 --error-logfile

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台