在讲日志之前先看2个问题: 1、当用户在使用某个功能报错时,开发该如何排查问题?
2、当出现某个接口返回数据很慢时,该如何优化?
要想快速的解决已上2个问题,就依赖于日志了。 日志是开发为了跟踪用户行为和代码异常而打的记录。
当一个请求到来时,我们一般会登记以下几种日志:
01
AccessLog-用户访问日志●●
一般会记录请求URL、请求参数、用户ID、行为发生时间、接口返回值等几个关键指标。
02
Exception-代码异常●●
代码异常一般会记录报错信息、报错发生的代码是哪一行、报错发生时间等指标。代码异常日志是最重要也是经常要看的日志,根据报错可以快速定位到发生错误的原因,快速地修复问题。
03
SqlLog-数据库查询日志●●
一般会记录SQL查询语句、数据库名表名、查询耗时等指标。可能会用于排查SQL错误、优化SQL语句。
04
第三方服务日志●●
如果后台调用了第三方服务,比如接入了公司内的统一登录服务,当调用该登录服务时,就记录这些行为。有利于排查问题时区分本服务日志和第三方日志。
05
CronLog-定时任务日志●●
如果后台有定时任务,比如每天凌晨同步某个数据库到另一个仓库,则可以记录下该任务是否成功、成功耗时等。
上面说的都是后台产生的日志,那么前端有没有错误日志呢?当然是有的,但是前端日志比后台就简单纯粹多了。前端一般只要记录发生错误的日志,上报到日志平台就可以了。 如果没有用户向你投诉某个功能报错了,那么开发如何在用户发现错误之前避免这些错误呢?这时就需要给异常添加监控告警了。
监控告警一般监控以下这些指标: 1、流量异常:指的是pv相比于以前,猛然升高。可能存在有人在恶意刷页面
2、服务崩溃:服务因为某种异常,导致的服务停止,不能正常访问。
3、代码异常:代码发生错误。
4、数据库查询过慢:可能因为查询人数过多、数据量过大、查询语句有问题导致的查询耗时过长。
5、服务占用CPU/内存过高:可能因为访问人数过多或者代码有bug导致的内存泄漏/CPU占用高。