描述:最近项目上需要做一个客户端重要报错信息上传保存至服务器,后台集中分析,需要前端支持。
讲一下我这边处理的逻辑,仅供参考:
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("流媒体报错","断开链接了");