d2-projects / d2-admin

An elegant dashboard

Home Page:https://d2.pub

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

🔩 功能开发 | 是否能接入sentry

My110202 opened this issue · comments

现在我的项目中接入了sentry, 但是有些错误不上报,比如打印了一个未定义的变量,都不会发送sentry,同样的配置在其他项目中都是可以用的, 都可以上报的

commented

并没有接入过 sentry,只提供一个思路。

先分析下 Vue 的错误捕获,可以发现官方提供了 Vue.config.errorHandler

D2Admin 也是基于此来捕获错误,用于自己的日志展示:

if (process.env.NODE_ENV === 'development') {
Vue.config.warnHandler = writeLog('warning')
}
Vue.config.errorHandler = writeLog('danger')

Sentry 提供的 Vue 组件捕获,也是基于此:
https://github.com/getsentry/sentry-javascript/blob/a833f0ec0a186f0672a536ea8f7d3b129a71a4fe/packages/vue/src/sdk.ts#L370-L378

Vue.config.errorHandler 是一个函数,所以 D2Admin 和 Sentry 都有可能覆盖对方设置的函数,你可以将 D2Admin 设置 errorHandler 的代码去掉,看看 sentry 能不能正常捕获到错误