程序员如何做「技术日志」:不是记录,是追踪
技术日志是系统运行状态的记录。
好的日志能帮你快速定位问题,不好的日志等于没有日志。
一、技术日志的内容
1. 系统状态
- 启动时间
- 配置信息
- 资源使用
2. 请求处理
- 请求入口
- 处理时间
- 返回结果
3. 错误信息
- 异常类型
- 堆栈信息
- 上下文
4. 业务操作
- 关键业务操作
- 数据变更
- 外部调用
二、日志的级别
1. DEBUG
详细调试信息,生产环境通常关闭。
记录变量值、中间状态。
2. INFO
正常流程记录。
入口、出口、关键步骤。
3. WARN
警告,不影响但需要注意。
如:重试成功、配置使用了默认值。
4. ERROR
错误,需要处理。
如:异常、调用失败。
三、好的日志习惯
1. 记录关键节点
- 请求入口
- 业务关键步骤
- 数据库操作
- 外部调用
2. 记录上下文
- 请求 ID(关联日志)
- 用户 ID(定位问题)
- 关键参数(复现问题)
3. 异常日志要完整
log.error("订单创建失败", e);
// 输出:异常类型 + 堆栈 + 原因
4. 不要过度日志
每个函数都打日志 = 没有日志。
敏感信息要脱敏。
四、日志格式
结构化日志(推荐)
{"time":"2024-01-01 10:00:00","level":"INFO","traceId":"123","msg":"用户登录"}
方便搜索、统计、分析。
常用字段
- time:时间
- level:级别
- traceId:请求 ID
- userId:用户 ID
- action:操作
- duration:耗时
五、工具推荐
1. Java
- Logback / Log4j2
- SLF4J(门面)
2. 日志平台
- ELK(Elasticsearch + Logstash + Kibana)
- Loki
- Sentry(异常追踪)
六、一句话总结
技术日志 = 关键节点 + 上下文 + 结构化 + 级别合理,异常日志要完整。