蒲公英团队最近开发了一款前端错误收集工具,名叫 frontend-tracker ,这款工具主要是在前端网页出现错误时能发现并将错误信息反馈到指定服务器上,本着开源精神,如今分享给你们,但愿能帮助你们在工做中获取便利,欢迎你们使用交流并分享给你周围的小伙伴们。javascript
Frontend Tracker 能够发现前端页面的错误,而且用户察觉错误前将错误发送至指定服务器。html
记录并发送前端页面产生的错误前端
记录脚本错误java
记录 XHR 请求错误git
记录 XHR 请求超时github
记录速度较慢的 XHR 请求正则表达式
记录跨域的 XHR 请求npm
记录资源加载错误跨域
记录跨域资源加载浏览器
正则表达式兼容的 URL 配置方式
frontend-tracker 代码能够经过使用使用 Bower
bower install frontend-tracker --save
或者使用 npm
npm install frontend-tracker --save
或者直接下载 ZIP 包来得到.
添加到你须要监控错误的页面便可
<script src="path/to/package/dist/tracker.min.js">
添加如下代码到您的代码中以启动 Frontend Tracker
<script type="text/javascript"> window.setTracker({ endpoint: '', xhr: { log: { crossOrigin: true, slowRequest: true, timeout: true, error: true }, origin: [ 'http://www.pgyer.com', /.*\.tracup\.com/, ], timeLimit: { send: 0, load: 0, total: 0 }, exclude: [] }, resource: { log: { crossOrigin: true, error: true }, origin: [], exclude: [] }, script: { log: { error: true }, exclude: [] } }) </script>
String Required
用于接收错误的 URL / URI.
Object Required
用于配置 XHR 错误发生时的行为
名称 | 类型 | 功能描述 |
---|---|---|
log | Required, Object | 配置 XHR 错误的记录行为 |
log.crossOrigin | Required, Boolean, Default: false |
当设置成 true 时记录跨域的 XHR 请求 |
log.slowRequest | Required, Boolean, Default: false |
当设置成 true 时记录速度较慢的 XHR 请求 |
log.timeout | Required, Boolean, Default: false |
当设置成 true 时记录超时的 XHR 请求 |
log.error | Required, Boolean, Default: false |
当设置成 true 时记录出错的 XHR 请求 |
origin | Optional, Array | 设置域内的 URI, 支持正则表达式 |
timeLimit | Optional, Object | 用于描述速度较慢 XHR 请求的时间界定值 |
timeLimit.send | int, Default: 0 | 请求发送到开始接收数据前的时间 (ms), 0 表示不限制 |
timeLimit.load | int, Default: 0 | 响应内容接收的时间 (ms), 0 表示不限制 |
timeLimit.total | int, Default: 0 | 请求花费的总时间 (ms), 0 表示不限制 |
exclude | Optional, Array | 设置忽略错误的 URI, 支持正则表达式 |
Object Required
用于配置资源错误发生时的行为
名称 | 类型 | 功能描述 |
---|---|---|
log | Required, Object | 配置资源错误的记录行为 |
log.crossOrigin | Required, Boolean, Default: false |
当设置成 true 时记录跨域的资源请求 |
log.error | Required, Boolean, Default: false |
当设置成 true 时记录错误的资源请求 |
origin | Optional, Array | 设置域内的 URI, 支持正则表达式 |
exclude | Optional, Array | 设置忽略错误的 URI, 支持正则表达式 |
Object
Required
用于配置脚本错误发生时的行为
name | type | description |
---|---|---|
log | Required, Object | 配置资源错误的记录行为 |
log.error | Required, Boolean, Default: false |
当设置成 true 时记录脚本错误 |
exclude | Optional, Array | 设置忽略错误脚本文件 URI, 支持正则表达式 |
错误信息会被以 JSON 的形式发送(POST)到设置的 endpoint 上
名称 | 值 | 描述 |
---|---|---|
type | String | 错误类型 XHR , RESOURCE , SCRIPT 的一种 |
data | Object | 详细错误信息 |
currentURL | string | 发生错误的 URL |
userAgent | string | 发生错误浏览器的 User-Agent |
错误信息能够经过 data.message
得到,详细信息须要经过解析 data.detail
来得到
类型 | data.detail 的结构 |
描述 |
---|---|---|
XHR | {request: String, response: {status: int, response: String},timing: {send: int, load: int, total: int}} | request : 请求的 URL, status : 状态码, response : 响应内容, send : 发送耗时(ms), load : 接收耗时 (ms), total : 总耗时 (ms) |
RESOURCE | {tagname: String, resourceURL: String} | tagname : 标签, resourceURL : 资源 URI |
SCRIPT | {file: String, line: int, column: int, trace: String} | file : 脚本文件名, line : 行号, column : 列号, trace : 调用堆栈 |
Frontend Tracker 以 GPL-3 licensed 受权使用.
有关代码库及更多详情可见:[https://github.com/Pgyer/frontend-tracker]