日志的作用
1.审计
- 商业分析:比如从日志中提取用户行为(比如,一个点击事件流)并结合用户的其他详情(比如,最终购买行为)来生成报告或者推荐相关产品。
- 接口调用情况统计:调用量、调用成功率、平均响应时间
- 软件使用情况统计
2.诊断
- 根据日志的错误信息的上下文定位和追踪问题
- 根据相关日志信息了解软件的运行状态
- ...
3.监控告警
在运维中,经常需要实时监控日志内容,根据某种策略来判断是否发出邮件告警,通知相关人员及时处理。读取日志的时间间隔可以根据实际情况来设定,可以1分钟、或者5分钟。
告警策略:
- 基于关键字告警: 出现某些关键字,如SQLException,则发出邮件告警。
- 基于统计告警:比如统计接口的成功率,低于某个值则告警;复杂一点的比如某个接口出现次数大于多少,成功率低于多少则告警;又如接口平均响应时间大于多少则告警。
实时读取日志的三种方法:
- 增量读取:每次读取日志把文件的大小保存下来,下一次从一次的记录的位置开始读取。
- 根据日志的时间读取,比如只读取最近两分钟的内容。这用方法不用记录读取的位置,日志文件不大时候,可采用这种方法,如果日志文件很大则此方法不适合。
- 使用类似watchdog的库实时监控日志的变化,日志一用增加则读取增加部分,这种方法实时性较高。