VUE错误日志监控(一)

前端错误日志监控可以解决什么问题

我们知道当前端项目的js发生错误时,可能会导致页面阻塞,操作不流畅,或者白屏等异常。但是由于我们的页面是在用户的浏览器打开的,这使的复现和查询问题的流程变的繁琐。这就使得我们需要将发生在浏览器的错误进行收集以便于生产问题处理。

如何进行错误捕获

javascript的错误分为以下这么几类:

1.语法错误(不能通过解析器解析)

2.运行时错误(解析器执行时抛出错误)

3.网络请求错误

收集错误:

1.try-catch

使用try-catch我们可以收集到语法错误和运行时错误,但需要注意的是,当我们捕获的代码块内部存在异步代码时就没法捕捉到error了(这个原因我觉得是和eventloop机制有关)

2.window.onerror

window.onerror就比较厉害了,它可以捕获同步和异步error,同时window.addEventListener('error',() => {}, true)的时候还可以监听资源请求错误

3.promise错误, async/await错误捕获

对于promise的错误我们一般是采用.catch的方式去监测,但是每个promise都要处理catch就很繁琐,有没有能统一处理的的方式呢?当然是有的,window.addEventListener("unhandledrejection", e=> {})

4.vue错误捕获

我们可以采用vue的全局错误捕获函数Vue.config.errorHandler,这样可以对vue抛出的错误全局捕获

工欲善其事必先利其器,有了以上的这些东西,让我们愉快的写代码吧

在我们的vue项目里面新建一个文件叫error.js

然后对我们上面监听我们上面说到的这些方法


图1

获取到错误信息之后,我们需要对错误进行一个格式化处理,这里我们使用error-stack-parser这个库对error进行格式化处理。处理完成之后所有的错误都有了一个统一的格式


图2

然后我们进行上报,也就是我们的sendToErrorService方法


图3

这里我们采用比较常见的统计上报方式,为了减小请求体积这里我们对错误信息进行转码(也可以在这里进行加密),到这里我们的客户端处理就算完成了,下一篇我们一起来看看我们的错误日志处理服务怎么处理这些错误。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 做好错误监控,将用户使用时的错误日志上报,可以帮助我们更快的解决一些问题。目前开源的比较好的前端监控有 ht...
    Small_Song阅读 1,225评论 0 0
  • 前言 最近杂七杂八的事情比较多,难得抽出时间来弥补一下之前的系列,欠大家的埋点系列现在开始走起来 为什么需要埋点系...
    Small_Song阅读 1,494评论 0 0
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,587评论 28 53
  • 人工智能是什么?什么是人工智能?人工智能是未来发展的必然趋势吗?以后人工智能技术真的能达到电影里机器人的智能水平吗...
    ZLLZ阅读 3,830评论 0 5
  • 首先介绍下自己的背景: 我11年左右入市到现在,也差不多有4年时间,看过一些关于股票投资的书籍,对于巴菲特等股神的...
    瞎投资阅读 5,761评论 3 8