djangoflow_sentry_reporter
Djangoflow Sentry Reporter is a library that allows you to report errors to Sentry
using the DjangoflowErrorReporter
class. It is built on top of the sentry_flutter
package and provides a simple and easy to use class for reporting errors to Sentry.
Installation
Add the package to your pubspec.yaml file:
dependencies:
djangoflow_sentry_reporter: <latest_version>
djangoflow_error_reporter: <latest_version> // Add this to use with DjangoflowErrorReporter
sentry_flutter: <latest_version> // Add this if you need other features from Sentry
Then run flutter pub get
to install the package.
Usage
To use the DjangoflowSentryReporter
class, you need to create an instance of it by passing your Sentry DSN as a constructor argument.
final sentryReporter = DjangoflowSentryReporter("https://your_dsn_key@sentry.io/project_id");
Then you can add the DjangoflowSentryReporter
class to the DjangoflowErrorReporter
class
DjangoflowErrorReporter.instance.addAll([sentryReporter]);
Finally, you can report errors to Sentry
by using the DjangoflowErrorReporter.instance.report(e, s)
method
try {
// some code that throws an exception
} catch (e, s) {
DjangoflowErrorReporter.instance.report(exception:e, stackTrace:s); // this will send error through Sentry
}
Enabling error reporting
To enable the SentryErrorReporter
, you can use the enableErrorReporting
method of DjangoflowErrorReporter.instance
. Disabled by default.
DjangoflowErrorReporter.instance.enableErrorReporting();
Initializing
You can also initialize the DjangoflowSentryReporter
instance by passing env and release values to DjangoflowErrorReporter.instance
DjangoflowErrorReporter.instance.initialize(env: 'production', release: '1.0.0');
Updating user information
You can update the user information by passing id
, email
and name
values to DjangoflowErrorReporter.instance
DjangoflowErrorReporter.instance.updateUserInformation(id: '123', email: 'user@example.com', name: 'John Doe');
Example
import 'package:djangoflow_sentry_reporter/djangoflow_sentry_reporter.dart';
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
final sentryReporter = DjangoflowSentryReporter("https://your_dsn_key@sentry.io/project_id");
DjangoflowErrorReporter.instance.enableErrorReporting();
DjangoflowErrorReporter.instance.addAll([sentryReporter]);
DjangoflowErrorReporter.instance.initialize(env: 'production', release: '1.0.0');
return MaterialApp(
home: Scaffold(
body: Center(
child: RaisedButton(
onPressed: () {
try {
throw Exception('Something went wrong');
} catch (e, s) {
DjangoflowErrorReporter.instance.report(exception:e, stackTrace:s);
}
},
child: Text('Throw Exception'),
),
),
),
);
}
}