在现代web开发中,前端应用的监测和错误追踪十分重要。yalo-raven是一款强大的基于Node.js的包,能够为前端应用提供实时错误监测和追踪服务。它可以被安装在任何npm项目中,提供跨平台的错误捕获,帮助开发人员及时发现和解决问题。
本文将详细介绍yalo-raven的使用方法,从安装到配置及运用。
安装npm包yalo-raven
yalo-raven是一款开源软件,并在npm上发布,安装过程极为简单。在命令行中执行以下命令即可完成安装:
npm install yalo-raven --save
配置yalo-raven
安装完成后,需要进行配置文件的编写。首先需要确定Dsn和版本信息(最近一次发行的版本为3.1.0),格式如下:
const raven = require('raven'); const client = new raven.Client( 'https://[public_key]:[private_key]@[host]/[project_id]', { release: '1.0.0' } );
其中,Dsn的参数含义如下:
public_key
: 你Releases API Key的公钥private_key
: 你Releases API Key的私钥host
: Sentry的主机地址(不包括协议,例如sentry.io/abc
中的sentry.io
)project_id
: 项目ID,可以在项目概述页面中找到
捕获错误
配置好raven客户端后,接下来可以开始捕获错误了。先看一下最简单的用法:
client.captureMessage('Hello, Raven!');
这一行代码会生成一条Message类型的事件,并连同Stacktrace一起发送到Sentry服务器上。Message类型有时是有用的,但是对于大多数应用程序造成的错误,对错误进行分类是极为重要的。此时需要创建A和B类错误。
A类错误
A错误是由于环境(如浏览器)的初始状态而已导致的错误,例如无法访问某些全局变量或不存在的变量。这些错误通常不涉及用户行为,而是集成问题。
try { // 故意访问不存在的变量 var hello = helloWorld; } catch (e) { client.captureException(e); }
执行这个代码,你将能够捕捉到一个ReferenceError。会发送类似于下面这样的一条事件到你的Sentry上:
-- -------------------- ---- ------- - ----------- ----------------------------------- -------- -------- ----------- ------------- --------- -------------- ---------- ------------ ---- ---- ---------- ----------- -- --- --------- ------------ - ------- ----------------- -------- ----------- -- --- --------- ------------- - - ----------- ------------------------------- ----------- -------------- --------- --- -------- -- --------- ---- - - - -
B类错误
B类错误通常与用户操作有关,例如Ajax请求失败或用户设置了错误的选项。捕捉这类错误可以帮助提高用户体验。
-- -------------------- ---- ------- ----------------------- ------------- ----------- - ------------------- --- ---- - -------------------- -------- ----- ----- ---- --------- ----- ------- -------- ---------- - --------------------------- -- ------ --------------- ----------- ------------ - ------------------------------------- ----------------------- - --- ---
这段代码会将错误信息发送到Sentry服务器。Sentry将捕捉到该函数的调用,包含请求URL和变量data
。它也将获取错误详细信息,或者提示是因为连接问题、403或500错误,无法正确交付。如果成功保存会直接打印出来。
原异常与重写
在大多数情况下,当 Raven 捕获异常时,它会立即重新抛出它,使你的应用程序的主要代码可以抓住它。通常可以忽略这个重写,但是有时您可能想要覆盖它。
使用 captureException
方法时,raven会在过滤列表中忽略与 ignoreErrors
配置匹配的异常类型。如果想指定需要忽略的异常,可以传入 ignoreErrors
数组。
Raven.config('___PUBLIC_DSN___', { ignoreErrors: [/^Script error\.?$/] }); // ... Raven.captureException(new Error('Script error.'));
以上代码将不会重新抛出 Error: Script error.
。想要重写并打开一个新的异常log可以传入第二个参数来改变日志:
Raven.captureException(new Error('Script error.'), { fingerprint: [ '{{ default }}', 'script-error', '{{ error.message }}' ] });
这里,我们打算对日志进行指纹验证(以便将来反向调用),并为其指定一个特定的指纹,可以比传递值更有意义,但也可以是任意数据。具体由你自己定义。
总结
yalo-raven是一款优秀的Node.js包,提供了实时的错误监测和追踪,为前端应用开发提供了极大的便利。它不仅能帮助开发人员及时发现和解决问题,还能帮助开发人员对错误进行分类和追踪。希望本文能够对初学者的了解有所帮助,同时也能为专家提供一些更高级的学习和指导。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005575e81e8991b448d4593