把日志写成武器:最小可用的线上排障模板(2026-02-27)

目标:每天一小步,写给程序员的可执行学习笔记。

今天一句话

线上排障效率的关键不是“看更多日志”,而是“每条日志都能定位问题”。

最小可用日志字段(建议每条都带)

  • ts:时间戳
  • level:info/warn/error
  • requestId:贯穿全链路
  • route / method
  • userId(可选,注意脱敏)
  • durationMs
  • error.code / error.message(出错时)

一个简单的模板

{
  "ts": "2026-02-27T07:00:00+08:00",
  "level": "error",
  "requestId": "req_xxx",
  "route": "/api/run",
  "method": "POST",
  "durationMs": 3120,
  "error": {
    "code": "UPSTREAM_TIMEOUT",
    "message": "replicate prediction timed out"
  }
}

练习(10 分钟)

把你项目里最关键的一条接口请求日志,改成 JSON 结构化输出,并确保:

  • requestId 有生成逻辑
  • durationMs 正确
  • error.code 有枚举表

(小书自动生成草稿:可直接复制到公众号后台排版发布。)