客户端日志上报功能
描述:最近项目上需要做一个客户端重要报错信息上传保存至服务器,后台集中分析,需要前端支持。
讲一下我这边处理的逻辑,仅供参考:
1.项目初始化时定义一个console.lr()
console['lr'] = function(){}
2.组装要上传至服务器的数据
var obj = {
'time': '时间',
‘equipmentType’:'设备类型',
'userName':'用户名',
'ques':'问题描述'
}
3.比较重要的是,有时候上传log遇到网络等问题会上报失败,这时候需要将log信息存在本地,当下次提交时一并上传。
这边用封装好的Session对象保存到本地。
var logList = [];
//合并obj
logList.push(obj)
var localLogList = Session.get("localLogList");
if(localLogList){
logList = logList.concat(localLogList);
}
4.开始上传,成功的话清除本地数据,失败在本地数据的基础上继续叠加报错信息。
这边也使用封装过的ajax方法, - -。(基于$ajax封装的)
ApiService.sendLogReport(logList).then(function(res){
if(res.result==0){
Session.delete("localLogList")
}else{
Session.set("localLogList",logList)
}
},function(err){
Session.set("localLogList",logList)
})
5.最后只要在项目需要报错的地方添加上log就行了。例如:
console.lr("流媒体报错","断开链接了");