Skip to content

Latest commit

 

History

History
 
 

sentry_dart_frog

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Sentry for dart_frog

This is an integration for dart_frog to collect errors and automatically report them to Sentry.

Note This is experimental. Use at your own risk.

How to use it?

First add a custom entry point and initialize Sentry as shown in the follwing code snippet. To know more about a custom entry point, read this.

// main.dart
Future<HttpServer> run(Handler handler, InternetAddress ip, int port) async {
  await Sentry.init((options) {
    options
      ..dsn = '<your_dsn_here>'
      ..tracesSampleRate = 1
      ..addDartFrogInAppExcludes();
  });
  return await runZonedGuarded(() {
    return serve(handler, ip, port);
  }, (error, stack) {
    final mechanism = Mechanism(type: 'runZonedGuarded', handled: false);
    final throwableMechanism = ThrowableMechanism(mechanism, error);

    final event = SentryEvent(
      throwable: throwableMechanism,
      level: SentryLevel.fatal,
    );

    Sentry.captureEvent(event, stackTrace: stack);
  })!;
}

Secondly, add the sentryMiddleware as shown in the following code snippet. Read more about middlewares here.

// _middleware.dart
Handler middleware(Handler handler) {
  return handler
      // add Sentry middleware
      .use(sentryMiddleware);
}