An exception reporting libarary
![codebeat badge](https://camo.githubusercontent.com/c142d2e06d47eff8728c5996efcbd6a9c562f5b552f1f1bf47e53d84d246b9ab/68747470733a2f2f636f6465626561742e636f2f6261646765732f39626236393863392d323264392d343637622d626537652d383832623731353836646633)
import Vue from 'vue'
import App from './App'
import VueExceptionReporter, { clearRepeatScanner } from 'vue-exception-reporter'
Vue.use(VueExceptionReporter, {
reportUrl: 'http://localhost:7001/api/v1/exception/collect'
})
new Vue({
el: '#app',
components: { App },
template: '<App/>',
beforeDestroy () {
// clearRepeatScanner()
// VueExceptionReporter.clearRepeatScanner()
}
})
{
reportUrl: '', // 上报地址,类型可以是字符串或函数。如果类型为函数,那么应该返回字符串
enable: true, // 是否启用
debug: true, // 是否在控制台打印错误日志
ignoreRepeatTimes: 5, // 在指定时间内异常重复触发超过该次数时不进行上报
scanInterval: 3000, // 扫描重复次数间隔
usingBeacon: false, // 是否采用beacon上报数据,默认采用Image标签
beforeReport: undefined, // 上报数据前的钩子函数 (data, type, event) => {} 注意:如果异常对象被置为空,则不会进行上报
afterReport: undefined, // 数据上报后的钩子函数
send: undefined, // 用户自定义上报函数 (url, data) => {}
installed: undefined, // 插件成功安装钩子函数
reportUnchangeException: true, // 是否上报未捕获异常
reportRequestException: true, // 是否上报ajax请求异常
reportUnhandleRejection: true, // 是否上报未处理的reject异常(兼容性不好)
reportFailedToLoadResourceException: true, // 是否上报资源加载失败异常
typeDefine: { // 类型常量定义,因为上传时的数据类型
RESOURCE_LOAD_FAILED_EXCEPTION: 'ResourceLoadFailedException', // 资源加载失败异常
REQUEST_FAILED_EXCEPTION: 'RequestFailedException', // ajax请求异常
SCRIPT_RUNTIME_EXCEPTION: 'ScriptRuntimeException', // js脚本执行错误异常
UNHANDLE_REJECTION_EXCEPTION: 'UnhandleRejectionException' // 未处理reject异常
}
}
参数名称 |
说明 |
类型 |
id |
上报数据唯一标识 |
String |
uid |
浏览器用户唯一标识 |
String |
type |
异常类型(由配置项中typeDefined定义) |
String |
timestamp |
时间戳(异常对象创建时间) |
Number |
message |
异常消息 |
Number |
ua |
用户代理 |
String |
url |
异常发生页面 |
String |
osName |
操作系统 |
String |
osVersion |
操作系统版本 |
String |
browserName |
浏览器 |
String |
browserVersion |
浏览器版本 |
String |
engineName |
浏览器渲染引擎 |
String |
engineVersion |
浏览器渲染引擎版本 |
String |
deviceName |
设备名称 |
String |
deviceType |
设备类型 |
String |
deviceVendor |
设备供应商 |
String |
jsExceptionName |
js异常类型 |
String |
stack |
异常堆栈 |
Array |
meta |
异常明细项 |
Object |
参数名称 |
说明 |
类型 |
type |
错误类型 |
String |
element |
触发元素 |
String |
elementInnerText |
触发元素文本 |
String |
elementClassName |
触发元素类名 |
String |
参数名称 |
说明 |
类型 |
status |
状态码 |
Number |
requestUrl |
请求地址 |
String |
requestMethod |
请求方式 |
String |
requestBody |
请求体(json) |
String |
参数名称 |
说明 |
类型 |
type |
资源类型 |
Number |
src |
资源地址 |
String |
html |
html标签 |
String |
参数名称 |
说明 |
类型 |
reason |
reject原因 (如果reason为异常类型则会忽略) |
- |
MIT
Copyright © 2019, msidolphin