Flutter - Sentry how to send event and stop sending in debug mode

3.2k Views Asked by At

How to send specific information in Sentry ? There is Events in documentation but how to use them properly and where exactly to use them (EX: Send user email with the error) ?

Sentry provided this source code but where exactly I have to use it? :

 Sentry.configureScope(
      (scope) => scope.user = SentryUser(id: '1234', email: '[email protected]'),
    );

And also how to stop sending reports in debug mode ?

3

There are 3 best solutions below

2
Loren.A On BEST ANSWER

Just to add an easy way to disable reporting in debugMode for anyone in the future:

Pass an empty string to the dsn in SentryFlutter.init if it's not in Release or Profile.

kDebugMode constant is available when importing Foundation

  await SentryFlutter.init(
    (options) {
      options.dsn = kDebugMode ? '' : sentryUrl;
    },
    appRunner: () => runApp(MyApp()),
  );
2
Manoel Neto On

@Rock setting the user depends on your own business logic, the only important thing is to call Sentry.configureScope(...) after initializing the SDK, rather than that, any place would work.

For not sending events on debug mode, there are many ways to do it, you could simply not initialize the SDK when its debug mode, or you could filter events on debug mode https://docs.sentry.io/platforms/flutter/configuration/filtering/

0
Isuru On

I simply only initialise Sentry if the app is in the release mode.

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());
}