我眼中的日志到底是什么

在讲日志之前先看2个问题:

1、当用户在使用某个功能报错时,开发该如何排查问题?
2、当出现某个接口返回数据很慢时,该如何优化?

要想快速的解决已上2个问题,就依赖于日志了。

日志是开发为了跟踪用户行为和代码异常而打的记录。

当一个请求到来时,我们一般会登记以下几种日志:

1、AccessLog:用户访问日志。一般会记录请求URL、请求参数、用户ID、行为发生时间、接口返回值等几个关键指标。

2、Exception:代码异常。代码异常一般会记录报错信息、报错发生的代码是哪一行、报错发生时间等指标。代码异常日志是最重要也是经常要看的日志,根据报错可以快速定位到发生错误的原因,快速地修复问题。

3、SqlLog:数据库查询日志。一般会记录SQL查询语句、数据库名表名、查询耗时等指标。

4、第三方服务日志:调用第三方服务日志。如果后台调用了第三方服务,比如接入了公司内的统一登录服务,当调用该登录服务时,就记录这些行为。

5、CronLog:定时任务日志。如果后台有定时任务,比如每天凌晨同步某个数据库到另一个仓库,则可以记录下该任务是否成功、成功耗时等。

上面说的都是后台产生的日志,那么前端有没有错误日志呢?当然是有的,但是前端日志比后台就简单纯粹多了。前端一般只要记录发生错误的日志,上报到日志平台就可以了。

如果没有用户向你投诉某个功能报错了,开发如何在用户发现错误之前避免这些错误?这时就需要给异常添加监控告警了。

监控告警一般监控以下这些指标:

1、流量异常:指的是pv相比于以前,猛然升高。可能存在有人在恶意刷页面

2、服务崩溃:服务因为某种异常,导致的服务停止,不能正常访问。3、代码异常:代码发生错误。4、数据库查询过慢:可能因为查询人数过多、数据量过大、查询语句有问题导致的查询耗时过长。5、服务占用CPU/内存过高:可能因为访问人数过多或者代码有bug导致的内存泄漏/CPU占用高。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注