日志不是写得越多越好,而是关键字段要稳定。一次请求至少应该有 request_id、method、path、status、latency、client_ip 和 user_id。

业务日志还要带资源 ID,比如 order_id、sku_id、job_id。没有这些字段,线上排障只能全文搜索,效率很低。

logger.Info("create order",
    zap.String("request_id", rid),
    zap.Int64("user_id", userID),
    zap.Int64("order_id", orderID),
)

错误日志要保留原始 err,不要只写“操作失败”。对外响应可以简洁,对内日志必须足够定位。

我判断日志是否合格的标准是:拿到用户反馈的一分钟内,能不能定位到对应请求和关键业务对象。

分类: 部署与可观测性 标签: Go 日志 可观测性

评论

-- 评论已关闭 --

全部评论