希望对你有所帮助和启发
除了 Sentry 基础的特性,还提供以下小程序相关特性
npm install sentry-mina --save
yarn add sentry-mina
browser/sentry-mina.js
拷贝到项目中import * as sentry from "sentry-mina/browser/sentry-mina.js";
// import * as sentry from "sentry-mina";
// config Sentry
sentry.init({
dsn: ''
})
// Set user information, as well as tags and further extras
Sentry.configureScope(scope => {
scope.setUser({ id: '4711' });
scope.setTag('user_mode', 'admin');
scope.setExtra('battery', 0.7);
// scope.clear();
});
// Add a breadcrumb for future events
Sentry.addBreadcrumb({
message: 'My Breadcrumb',
// ...
});
// Capture exceptions, messages or manual events
Sentry.captureMessage('Hello, world!');
Sentry.captureException(new Error('Good bye'));
Sentry.captureEvent({
message: 'Manual',
stacktrace: [
// ...
],
});
new sentry.Integrations.Breadcrumbs({
console: true,
request: true,
navigation: true,
api: true,
lifecycle: true
})
配置 | 类型 | 默认值 | 描述 |
---|---|---|---|
console | Boolean, Array | true | 是否记录 console 日志,如果值为数组 ['log', 'info'],则只记录数组中所列的日志 |
request | Boolean | true | 是否记录页面 request 请求 |
navigation | Boolean | true | 是否记录页面导航信息 |
api | Boolean | true | 是否记录小程序 API 调用 |
lifecycle | Boolean | true | 是否记录小程序生命周期变化 |
捕获并记录 setTimeout, setInterval 内的异常
new sentry.Integrations.TryCatch()
将 Sentry 事件数据记录到小程序 LogManager
new sentry.Integrations.LogManager({
level: 0
})
配置 | 类型 | 默认值 | 描述 |
---|---|---|---|
level | Number | 0 | 取值为0表示是否会把 App、Page 的生命周期函数和 wx 命名空间下的函数调用写入日志,取值为1则不会 |
记录 app.onError 和 app.onPageNotFound 日志
new sentry.Integrations.GlobalHandlers()
目前小程序只支持通过 request 发送日志到服务器,由于小程序 request 有并发限制, sentry-mina
以队列的方式发送日志请求,避免过多占用请求资源。
sentry-mina
发送日志,支持失败重试,默认重试 2 次。可以通过以下方式
sentry.init({
transportOptions: {
retry: 2
}
})
进行配置。
sentry-mina
会记录未发送的日志,当用户重新进入小程序,会继续发送。
9 个评论
点个赞 正在使用中
同一个接口在小程序原生和小程序内嵌h5都有可能调用,sentry报错能定位到具体的原生path或者内嵌h5的链接吗?
遇到这种插件冲突情况要怎么解决?
[non-writable] modification of global variable "Function.prototype.toString" is not allowed when using plugins at app.json.
Function.prototype.toString = function() { for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; var n = this.__sentry__ ? this.__sentry_original__ : this; return r.apply(n, t) }
如果要修复这个报错,可以参考 https://github.com/alexayan/sentry-mina/issues/16#issuecomment-572439617
你是在他的基础上再封装了一次么?是不是自己搭建了服务器之后,设置好dsn那些就可以直接用了?还是怎么样,有一个完整的demo么、
Unhandled promise rejection TypeError: Cannot read property 'value' of undefined
真机调试的时候总会报这个错误,而且后台没有记录、开发者工具调试就不存在这个问题,是不是存在bug ?
sentry.captureException在微信开发者工具调试时调用有效,能看到日志,但是真机调试时调用失败,也没有日志被记录,
引入方式为import * as sentry from 'sentry-mina/browser/sentry-mina.js'
只引入了包,还未实例化
// import * as sentry from 'sentry-mina/browser/sentry-mina.js'
import * as sentry from 'sentry-mina'
import * as sentry from 'sentry-mina/browser/sentry-mina.js'
可以用这种方式引入
haoba
按照你demo方式引入了,报错
thirdScriptError
sdk uncaught third Error
regeneratorRuntime is not defined
ReferenceError: regeneratorRuntime is not defined
估计不支持原生开发
这是楼主基于sentry 写的微信小程序的sdk吗
我用的有赞的
raven-weapp
死活捕获不到错误日志
而sentry的web端捕获分分钟搞定啊,崩溃了
我也在用有赞的,我的是mpvue,各种报错
raven本身没报错的话,设置一下transport:wx.request