微信小程序埋点抓取用户错误并定位错误

效果整理预览

在这里插入图片描述

在app.js中使用onError监听错误,通过请求传给后端存起来,就这么简单~

onError: function (err) {
	// 上报错误
	this.post("client_err/err_save", {
		name: err.split(' at ')[0], //错误名
		err_msg: JSON.stringify(err),  //完整报错内容
		device_info: JSON.stringify(wx.getDeviceInfo()), //存储报错的设备信息
		cur_pages: JSON.stringify(getCurrentPages().map(item => ({options: item.options, route: item.route}))) //存储报错时的页面路由及相应的参数
	});
},

后台整理预览部分代码

const deviceObj = {
	deviceAbi: '设备二进制接口类型',
	benchmarkLevel: '设备性能等级',
	brand: '设备品牌',
	model: '设备型号',
	system: '操作系统及版本',
	memorySize: '设备内存大小/MB',
	platform: '客户端平台',
	cpuType: '设备 CPU 型号',
	osName: '系统名称',
	osVersion: '操作系统版本',
}
const list = list.map(item => {
	item.device_info = typeof(item.device_info) == "string" && item.device_info != '' ? JSON.parse(item.device_info) : item.device_info;
	item.cur_pages = typeof(item.cur_pages) == "string" && item.cur_pages != '' ? JSON.parse(item.cur_pages) : item.cur_pages;
	item.err_msg = typeof(item.err_msg) == "string" && item.err_msg != '' ? JSON.parse(item.err_msg).split('\n') : item.err_msg.split('\n');
	item.name = item.name.split('\n');
	return {...item}
});
// 显示设备信息的时候用deviceObj[name]就可以转中文啦

在这里插入图片描述
存储的页面仅是tab页之后的页面,仅用于帮助定位报错页面,不能定位到具体代码行。实际还是需要自己排查。
如果需要定位到具体位置,可能需要使用We分析下载错误报告进行定位(这里不多提及。大家可以百度)。
在这里插入图片描述

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天外来鹿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值