提问人:Rock 提问时间:11/1/2021 更新时间:2/28/2022 访问量:2595
Flutter - Sentry 如何在调试模式下发送事件并停止发送
Flutter - Sentry how to send event and stop sending in debug mode
问:
如何在哨兵中发送特定信息?文档中有事件,但如何正确使用它们以及确切地在哪里使用它们(例如:发送带有错误的用户电子邮件)?
Sentry 提供了这个源代码,但我到底在哪里使用它?:
Sentry.configureScope(
(scope) => scope.user = SentryUser(id: '1234', email: '[email protected]'),
);
以及如何停止在调试模式下发送报告?
答:
1赞
Manoel Neto
11/2/2021
#1
@Rock用户设置取决于你自己的业务逻辑,唯一重要的是在初始化 SDK 后调用,而不是这样,任何地方都可以。Sentry.configureScope(...)
对于不在调试模式下发送事件,有很多方法可以做到这一点,您可以在调试模式下不初始化 SDK,或者您可以在调试模式下过滤事件 https://docs.sentry.io/platforms/flutter/configuration/filtering/
评论
0赞
Rock
11/3/2021
嗨,@Manoel感谢您的回复,我在初始化 sentry 后将 Sentry.configureScope(...) 放在主目录中,但不幸的是它不起作用。在哨兵面板中,它仍然显示用户未知
0赞
Rock
11/3/2021
我注意到我正在尝试在用户初始化之前发送用户数据,所以我在用户初始化之后放置了这个方法,它起作用了。多谢
14赞
Loren.A
11/15/2021
#2
只是为了添加一种简单的方法来禁用将来任何人的报告:debugMode
如果空字符串不在 in 或 ,则将空字符串传递给 in。dsn
SentryFlutter.init
Release
Profile
kDebugMode
常量在导入时可用Foundation
await SentryFlutter.init(
(options) {
options.dsn = kDebugMode ? '' : sentryUrl;
},
appRunner: () => runApp(MyApp()),
);
评论
7赞
Kyle Venn
3/29/2022
当我这样做时,异常不再打印到控制台。您可以添加以取回它们。options.debug = kDebugMode;
0赞
petras J
8/26/2022
最简单、最优雅的解决方案
2赞
Isuru
2/28/2022
#3
我只是在应用程序处于发布模式时才初始化 Sentry。
if (kReleaseMode) {
// Only enable Sentry in release builds.
await SentryFlutter.init(
(options) {
options.dsn = 'https://<your DSN>';
},
appRunner: () => runApp(const MyApp()),
);
} else {
runApp(const MyApp());
}
评论