这篇博文是网易杭州研究院的员工总结出他们系统的日志输出规范,有较高的参考价值。
博文链接:https://zhuanlan.zhihu.com/p/27363484
以下为内容提要,更详细的日志规范说明,可以参考博客原文。
对好日志和坏日志进行定义和区分。
一句话,好日志能够快速让系统运维人员了解系统运行的状态,能快速定位系统的问题, 能发现系统存在的风险和系统的瓶颈所在。
日志分类
- 诊断日志: 请求响应,资源消耗,容错,程序异常,后台任务,启动配置参数等;
- 统计日志: 用户访问统计;
- 审计日志: 管理类的操作
日志内容
- 原则:记录不多不少的信息。能合并为一条日志输出的,就不要输出多条。输出必要的信息,保证能快速定位到问题。
- 通常会漏掉的日志:1)系统的配置参数;2)后台定时任务;3)异常处理逻辑;4)关键参数信息如失败原因等
日志级别
- FATAL: 系统级别的错误,系统不可恢复的错误。一个进程生命周期最好只有一个FATAL类型日志。
- ERROR: 用户级别的错误,请求不能正常完成,需要人工介入处理。
- WARN: 系统潜在问题,比如资源即将消耗完,网络波动等,能不打warn日志就尽量不要打。
- INFO: 记录日志正常运行状态, 业务处理成功节点等。
- DEBUG/TRACE: 精确记录系统执行的每一步。
对日志的优化
- 日志需要持续优化
- 定期对系统的日志输出进行Review
请求的RequestID
- 全链路跟踪
- 生成策略
日志级别的动态控制
- 可以通过外部输入,控制部分日志的输出级别
慢日志
日志监控
- 合理设置日志的报警,避免过多导致对报警失去敏感
其他
- 日志文件分类:根据业务可以选择输出到不同的文件
- 日志文件大小:按日或按小时切割