Flutter - Sentry how to send event and stop sending in debug mode
Solution 1
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()),
);
Solution 2
@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/
Solution 3
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());
}
Rock
Updated on January 02, 2023Comments
-
Rock over 1 year
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 ?
-
Rock over 2 yearsHi @Manoel thanks for response, I put the Sentry.configureScope(...) in the main after initializing sentry but unfortunately it did not work. In the sentry panel it still shows that the user is unknown
-
Rock over 2 yearsI have noticed that I am trying to send user data before user initialization, so I put this method after user initialization and it worked. Thanks a lot
-
Kyle Venn about 2 yearsWhen I do this, exceptions aren't printed to the console anymore. You can add
options.debug = kDebugMode;
to get them back.