小程序错误日志链路处理规范

背景与业务

当线上环境捕获错误日志时,需建立标准化处理流程确保问题闭环。本规范结合导购小程序特点和错误日志的日志级别指定,重点解决生产环境JS报错排查难的问题,同时及时处理异常报错增加线上环境的稳定性。

解决方案:

sourcemap对报错信息进行逆向解析

错误日志排查处理依赖前期的错误监控体系、动态版本号:

  1. 可观测性升级:小程序错误监控体系实践
  2. 小程序自动化构建与版本管理方案优化

标准化处理流程

bash 复制代码
                        level=1
[钉钉告警]--->[TAPD工单] ------> [研发修复] --->[测试验证] ----> [发布更新]
                        |                                       |
                        | level>1                               |
                        └--------------[迭代周期发布]-------------┘

SourceMap

1. 获取方式对比

  • 微信公众后台下载(付费)
  • CI脚本自动获取(免费)

2. 脚本获取

在小程序上传脚本之后添加sourcemap获取的脚本sourcemap.wx.js,代码如下:

javascript 复制代码
const env = process.env.NODE_ENV || 'prod'
const appid = process.env.APP_ID || 'wxxxxxxxxxxxxxxx'
const privateKeyPath = process.cwd() + '/' +`${env}key/private.`+ `${appid}` + '.key';
const version = process.env.VERSION || ''
const ci = require('miniprogram-ci');

const project = new ci.Project({
  appid: appid,
  type: 'miniProgram',
  projectPath: process.cwd() + '/dist',
  privateKeyPath: privateKeyPath,
  ignores: [
    'node_modules/**/*',
    'devkey/**/*',
    'prodkey/**/*',
    'prekey/**/*',
  ],
  reporter: (res)=> {
    console.log('reporter: ', reporter)
  }
})

ci.getDevSourceMap({
  project,
  robot: 1,
  sourceMapSavePath: `./${version}.zip`
})

错误解析

报错信息

javascript 复制代码
MiniProgramError
c is not a function
TypeError: c is not a function
    at u (appservice.js:388:6358)
    at WASubContext.js:1:103490

根据报错信息在错误监控平台找到具体的日志信息:

错误定位

通过微信小程序开发工具定位错误位置:

  1. 在日志库找到对应版本的sourcemap
  2. 在微信小程序调试器->sourcemap定位报错

版本管理

必须检查

✅ SourceMap文件与线上版本严格对应

✅ 生产环境Map文件保留期≥90天

优化建议

搭建SourceMap管理平台,实现错误日志一键解析:

  • 版本文件自动归档
  • 一键逆向解析
相关推荐
zwjapple1 小时前
docker-compose一键部署全栈项目。springboot后端,react前端
前端·spring boot·docker
像风一样自由20203 小时前
HTML与JavaScript:构建动态交互式Web页面的基石
前端·javascript·html
aiprtem4 小时前
基于Flutter的web登录设计
前端·flutter
浪裡遊4 小时前
React Hooks全面解析:从基础到高级的实用指南
开发语言·前端·javascript·react.js·node.js·ecmascript·php
why技术4 小时前
Stack Overflow,轰然倒下!
前端·人工智能·后端
GISer_Jing4 小时前
0704-0706上海,又聚上了
前端·新浪微博
汤姆yu4 小时前
基于微信小程序的学校招生系统
微信小程序·小程序·招生小程序
止观止5 小时前
深入探索 pnpm:高效磁盘利用与灵活的包管理解决方案
前端·pnpm·前端工程化·包管理器
whale fall5 小时前
npm install安装的node_modules是什么
前端·npm·node.js
烛阴5 小时前
简单入门Python装饰器
前端·python