cct-logger 前端日志收集器
该项目通过error事件与console输出方法拦截收集日志信息及输出信息,
所有的消息记录通过队列异步处理,并且对消息的长度可以限制并截取,
重复的报错信息将会被记录,但日志消息不会重复收集,
即使发生了循环或定时不停的出现日志也会处理,
日志消息队列异步执行,当长时间消息队列未清空处理时将强制执行一次清空处理,
同时也可以配置收集什么类型的日志信息,
日志消息将通过onMessage与onQueue两个回调将消息传递出去,
本项目负不负责消息的上传,只将处理结果通过回调函数返回。
安装
// npm
npm install --save cct-logger
// cnpm
cnpm install --save cct-logger
// yarn
yarn add cct-logger
使用示例
;// 以下是所有可配置的默认参数,仅onMessage onQueue默认为nulllogger;
注意事项
- 默认只开启了console.log与error事件的记录
- 如果开房了console.log的记录,那么在回调函数中不要再调用console.log方法否则将导致循环调用,其它方法也一样
- 所有的日志都将添加到队列中处理,但队列不是实时处理的,而是异步以提升性能,delay的时间即是异步的延迟时间,对于高频触发的日志,比如循环产生的日志或连续产生的日志,为了减少相同的日志冗余,不会将相同的日志添加到队列,但当重复的日志次数大于或等于maxRepeat时,会再发一次错误日志并配置repeat为true
- 如果连续性的日志输出导致一直在记录,因此当长时间没有队列被执行(一直在产生新的日志时),将会强制执行队列并清空当前队列,可以通过maxDelay设置最大队列等待执行时间,万一发生循环或定时不停的产生日志也能保证日志队列及时执行
- 当url发生变化时也将会监听url变化并记录最新的url信息
日志消息的数据示例
以下是error事件收集的日志数据结构
```以下是通过console输出收集的日志数据结构```json