04 · BUSINESS BACKENDP111 MIN
Structured Logging
用可查询字段记录事件上下文,而不是在线上翻找拼接字符串。
MENTAL MODELSTRUCTURED LOGS
01Request ID
→02Service Events
→03DB / External Timing
→04Queue Job
→05Search Timeline
先把概念与边界说清楚
定义告诉你它是什么,边界告诉你它不负责什么;企业系统最常见的误解通常发生在两者混用时。
Structured Log
以 JSON 等结构记录 level、event、trace_id、tenant_id、resource_id、duration 等字段。
Log Level
DEBUG、INFO、WARN、ERROR 表达事件严重性和预期响应。
Correlation Context
用 trace/request/job id 把跨服务和异步任务的事件串成一条时间线。
订单偶发失败却无法复现
日志只有“create order failed”,不知道租户、订单、步骤或外部调用。
- 01
定义 order.create.failed 事件。
- 02
记录 trace_id、tenant_id、error_code 和安全的资源 ID。
- 03
错误对象保留内部堆栈并做敏感字段清洗。
一次搜索即可还原请求在哪一步失败,并关联同一任务后续重试。
马上动手
- 为库存冲突写一条结构化日志。
- 列出必须脱敏的字段。
常见坑
- 把密码/令牌写日志
- message 文案作为唯一查询维度
- 每行日志字段名都不同
05 · KNOWLEDGE CHECKStructured Log 与 Audit Log 有何不同?查看答案⌄
答案
结构化应用日志服务运行诊断,可按保留期采样;审计日志服务业务追责与合规,写入权限、不可变性和保留要求更严格。