Bladeren bron

增加前端代码错误监控

jwyu 2 jaren geleden
bovenliggende
commit
c8cf5e5935
3 gewijzigde bestanden met toevoegingen van 41 en 3 verwijderingen
  1. 13 0
      src/api/common.js
  2. 2 3
      src/main.js
  3. 26 0
      src/utils/reportErr.js

+ 13 - 0
src/api/common.js

@@ -3,6 +3,19 @@
  */
 import {get,post} from './http'
 
+/**
+ * 上传错误日志
+ */
+ export const apiReportingErrInfo=params=>{
+    let obj={
+        ...params,
+        timestamp:new Date().toLocaleString(),
+        agent:'研报PC端',
+        page:window.location.href
+    }
+    return post('/public/wechat_warning',{content:JSON.stringify(obj)})
+}
+
 
 /**
  * 获取所有可以申请的品种权限列表

+ 2 - 3
src/main.js

@@ -8,17 +8,16 @@ import "@/style/global.scss";//全局样式
 import 'normalize.css'
 import {drag} from  "./directive/drag"
 import '@/utils/interceptRouterMethod.js' //重写router方法模块
+import reportErr from '@/utils/reportErr'
 import VConsole from 'vconsole';
 
 if(import.meta.env.MODE==='test'){
     const vConsole = new VConsole();
 }
 
-console.log('测试下新发布平台');
-
 const app = createApp(App)
 app.directive('drag', drag)
-
+reportErr(app)//设置全局错误上报
 app.use(ElementPlus)
 app.use(router)
 app.use(store)

+ 26 - 0
src/utils/reportErr.js

@@ -0,0 +1,26 @@
+// 上报错误(及时上报)
+import {apiReportingErrInfo} from '@/api/common'
+
+const reportErr=(app)=>{
+    let errObj={}
+
+    app.config.errorHandler=(err, instance, info)=>{
+        errObj={
+            msg:err.message,
+            stack:err.stack
+        }
+        apiReportingErrInfo({errInfo:errObj})
+    }
+
+    window.addEventListener('error',(e)=>{
+        errObj={
+            msg:e.error.message,
+            stack:e.error.stack
+        }
+        apiReportingErrInfo({errInfo:errObj})
+    })
+}
+
+
+
+export default reportErr