Article
结构化日志与可观测性:从 fmt.Println 到可检索事件
结构化日志与可观测性:从 fmt.Println 到可检索事件
为什么要结构化
纯文本日志适合本地;一旦多实例、要按 「request_id」 / 「path」 / 「status」 过滤,JSON 字段更可控。
推荐字段:
- 「time」、「level」、「msg」
- 「request_id」、「path」、「method」、「latency_ms」
- 「user_id」(若有)、「error」
与链路追踪的关系
日志解决「发生了什么」,指标解决「是否变糟」,追踪解决「慢在哪一段」。个人博客可先把日志与健康检查做好,再按需加 OpenTelemetry。
实践建议
- 生产默认 「info」,排障临时调 「debug」
- 禁止把 Token、密码打进日志
- 错误日志带上堆栈或错误链,但避免超大 body
小结
可观测性不是堆工具,而是让「出问题后 5 分钟内能定位」变成常态。