客户端日志上报功能

描述:最近项目上需要做一个客户端重要报错信息上传保存至服务器,后台集中分析,需要前端支持。

讲一下我这边处理的逻辑,仅供参考:

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("流媒体报错","断开链接了");

 

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐