Flutter - Sentry如何在调试模式下发送事件和停止发送

Posted

技术标签:

【中文标题】Flutter - Sentry如何在调试模式下发送事件和停止发送【英文标题】:Flutter - Sentry how to send event and stop sending in debug mode 【发布时间】:2021-12-16 04:32:08 【问题描述】:

如何在 Sentry 中发送特定信息?文档中有事件,但是如何正确使用它们以及在哪里使用它们(例如:发送带有错误的用户电子邮件)?

Sentry 提供了这个源代码,但我必须在哪里使用它? :

 Sentry.configureScope(
      (scope) => scope.user = SentryUser(id: '1234', email: 'jane.doe@example.com'),
    );

还有如何在调试模式下停止发送报告?

【问题讨论】:

【参考方案1】:

只是添加一个简单的方法来为将来的任何人禁用debugMode 中的报告:

如果SentryFlutter.init 中的dsn 不在ReleaseProfile 中,则将空字符串传递给它。

kDebugMode常量在导入Foundation时可用

  await SentryFlutter.init(
    (options) 
      options.dsn = kDebugMode ? '' : sentryUrl;
    ,
    appRunner: () => runApp(MyApp()),
  );

【讨论】:

【参考方案2】:

@Rock 设置用户取决于你自己的业务逻辑,唯一重要的是调用Sentry.configureScope(...) 初始化SDK,而不是那个,任何地方都可以。

对于在调试模式下不发送事件,有很多方法可以做到,您可以在调试模式下不初始化SDK,或者您可以在调试模式下过滤事件https://docs.sentry.io/platforms/flutter/configuration/filtering/

【讨论】:

嗨@Manoel 感谢您的回复,我在初始化哨兵后将 Sentry.configureScope(...) 放在了主目录中,但不幸的是它没有工作。在哨兵面板中仍然显示用户未知 我注意到我试图在用户初始化之前发送用户数据,所以我把这个方法放在用户初始化之后并且它工作了。非常感谢

以上是关于Flutter - Sentry如何在调试模式下发送事件和停止发送的主要内容,如果未能解决你的问题,请参考以下文章

Flutter如何调试应用Dart Observatory 以及调试模式断言

在 Flutter 使用 Sentry 收集错误

如何在 Android Studio 中为 Flutter 上的小部件测试进入调试模式?

Flutter混合开发模式下的代码调试

如何在 Sentry 上设置源地图

FlutterFlutter 混合开发 ( Dart 代码调试 | Flutter 单独调试 | 混合模式下 Flutter 调试 )