跳至正文
← 全部技术洞察

TECHNICAL INSIGHTS / 技术洞察

.NET 日志要记录哪些字段,才能按一次业务查完整过程?

日志内容很多,排查时却无法确认是不是同一笔业务,往往是关联字段不一致。日志设计应从排查问题出发,约定服务、环境、版本和请求标识,而不只是统一输出格式。

让字段表达稳定含义

区分请求关联标识、业务标识和消息标识。一个业务可能经过多次请求和重试,不能只靠某个 HTTP 请求 ID 串起全部生命周期。字段名称与用途应在团队中保持一致。

记录结果与必要上下文

关键状态变化、拒绝原因和外部调用结果,通常比大量“开始执行”“执行完成”更有用。日志应帮助回答发生了什么以及接下来怎么查,避免在每层重复记录同一个异常堆栈。

控制敏感数据与规模

不要默认记录完整请求体、凭证或客户资料。必要业务标识应受访问权限和保留规则控制。对高频路径先估算日志量,避免为了排查方便制造不可持续的存储成本。

验收从客服信息找到业务

只提供时间范围和受控业务标识,让另一位成员定位服务、版本和关键状态。若仍需要原开发者解释字段,说明日志约定还不够清楚。

常见问题:Trace ID 能替代订单号等业务标识吗?

不能完全替代。一次订单可能跨越多个请求与异步过程,技术关联与业务关联需要配合使用。

技术参考:微软:.NET 与 OpenTelemetry。具体接口与配置请结合使用版本核对。

将评估落实到你的系统

如果你的 .NET 应用还缺少可重复的部署、观察或恢复流程,可以通过容器化与自动化交付服务梳理现状,约定实施内容、演练场景与运维交接方式。