最佳日志实践

这篇博文是网易杭州研究院的员工总结出他们系统的日志输出规范,有较高的参考价值。

博文链接:https://zhuanlan.zhihu.com/p/27363484

以下为内容提要,更详细的日志规范说明,可以参考博客原文。

对好日志和坏日志进行定义和区分。

一句话,好日志能够快速让系统运维人员了解系统运行的状态,能快速定位系统的问题, 能发现系统存在的风险和系统的瓶颈所在。

日志分类

  • 诊断日志: 请求响应,资源消耗,容错,程序异常,后台任务,启动配置参数等;
  • 统计日志: 用户访问统计;
  • 审计日志: 管理类的操作

日志内容

  • 原则:记录不多不少的信息。能合并为一条日志输出的,就不要输出多条。输出必要的信息,保证能快速定位到问题。
  • 通常会漏掉的日志:1)系统的配置参数;2)后台定时任务;3)异常处理逻辑;4)关键参数信息如失败原因等

日志级别

  • FATAL: 系统级别的错误,系统不可恢复的错误。一个进程生命周期最好只有一个FATAL类型日志。
  • ERROR: 用户级别的错误,请求不能正常完成,需要人工介入处理。
  • WARN: 系统潜在问题,比如资源即将消耗完,网络波动等,能不打warn日志就尽量不要打。
  • INFO: 记录日志正常运行状态, 业务处理成功节点等。
  • DEBUG/TRACE: 精确记录系统执行的每一步。

对日志的优化

  • 日志需要持续优化
  • 定期对系统的日志输出进行Review

请求的RequestID

  • 全链路跟踪
  • 生成策略

日志级别的动态控制

  • 可以通过外部输入,控制部分日志的输出级别

慢日志

日志监控

  • 合理设置日志的报警,避免过多导致对报警失去敏感

其他

  • 日志文件分类:根据业务可以选择输出到不同的文件
  • 日志文件大小:按日或按小时切割
------ 本文结束 ------
TisaKong wechat
启发思维个人微信公众号
0%