小程序接入Sentry监控

小程序sentry-minia应用,即Sentry 无官方 api 用于提供给小程序,可以使用第三方根据提供的库,可使用原有 api 实现小程序端的异常监控。

安装

  1. npm install sentry-mina --save
  2. yarn add sentry-mina
  3. 将 sentry-mina/dist/sentry-mina.js 拷贝到项目中

使用

  1. 新增utils/sentry.ts文件,内容如下:
import * as Sentry from 'sentry-mina'
import dayjs from 'dayjs'

const sentryDsn = 'https://xxxx.com/'

const isOpenSentry = !!sentryDsn

// 注册
// https://www.npmjs.com/package/sentry-mina?activeTab=readme
export const useSentry = (Vue) => {
	if (!isOpenSentry) return

	Sentry.init({
		dsn: sentryDsn,
		ignoreErrors: ['ResizeObserver loop limit exceeded'],
		tracesSampleRate: 1.0,
    	release: 'mini',
		environment: process.env.NODE_ENV,
		beforeSend(event: any) {
			delete event.extra.launch
			return event
		}
	})

	// https://www.javascriptc.com/vue3js/api/application-config.html#errorhandler
  Vue.config.errorHandler = function(err, vm, info) {
    const page = getCurrentPages()
    const curr = page[page.length - 1] ?? {}

    const opts = {
      title: curr.__data__ ? curr.__data__.head_title : '',
      path: curr.route || uni.getLaunchOptionsSync().path,
      fullPath: curr.$page ? curr.$page.fullPath : '',
      message: err.message,
      trace: info,
      time: dayjs().format('YYYY-MM-DD HH:mm:ss')
    }

    // Vue error reporting
    Sentry.withScope(scope => {
      scope.setExtra('Report[Vue]', opts)
      Sentry.captureMessage(`${opts.message}-${opts.path}`)
    })
  }
}
  1. 在main.ts中注册sentry

import Vue from 'vue'

import { useSentry } from './utils/sentry'

useSentry(Vue)

new Vue({
 ...App,
}).$mount()

效果

在这里插入图片描述

代码参考

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值