Skip to content

Commit 8c66851

Browse files
committed
add code samples with SentryFlutter.init instead of Sentry.init
1 parent f59ee0b commit 8c66851

File tree

8 files changed

+140
-0
lines changed

8 files changed

+140
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
```dart
2+
import 'package:flutter/widgets.dart';
3+
import 'package:sentry_flutter/sentry_flutter.dart';
4+
5+
Future<void> main() async {
6+
await SentryFlutter.init(
7+
(options) {
8+
options.dsn = '___PUBLIC_DSN___';
9+
options.allowUrls = ["^https://sentry.com.*\$", "my-custom-domain"];
10+
},
11+
appRunner: initApp, // Init your App.
12+
);
13+
}
14+
```
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
```dart
2+
import 'package:flutter/widgets.dart';
3+
import 'package:sentry_flutter/sentry_flutter.dart';
4+
5+
FutureOr<SentryEvent?> beforeSend(SentryEvent event, Hint hint) async {
6+
return hint is MyHint ? null : event;
7+
}
8+
9+
Future<void> main() async {
10+
await SentryFlutter.init((options) => options.beforeSend = beforeSend);
11+
}
12+
```
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
```dart
2+
import 'package:flutter/widgets.dart';
3+
import 'package:sentry_flutter/sentry_flutter.dart';
4+
5+
FutureOr<SentryEvent?> beforeSend(SentryEvent event, Hint hint) async {
6+
// Modify the event here:
7+
event = event.copyWith(serverName: null); // Don't send server names.
8+
return event;
9+
}
10+
11+
Future<void> main() async {
12+
await SentryFlutter.init((options) => options.beforeSend = beforeSend);
13+
}
14+
```
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
```dart
2+
import 'package:flutter/widgets.dart';
3+
import 'package:sentry_flutter/sentry_flutter.dart';
4+
5+
Future<void> main() async {
6+
await SentryFlutter.init(
7+
(options) {
8+
options.dsn = '___PUBLIC_DSN___';
9+
options.denyUrls = ["^.*ends-with-this\$", "denied-url"];
10+
},
11+
appRunner: initApp, // Init your App.
12+
);
13+
}
14+
```
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
```dart
2+
import 'package:flutter/widgets.dart';
3+
import 'package:sentry_flutter/sentry_flutter.dart';
4+
5+
FutureOr<SentryEvent?> beforeSend(SentryEvent event, Hint hint) async {
6+
if (event.throwable is DatabaseException) {
7+
event = event.copyWith(fingerprint: ['database-connection-error']);
8+
}
9+
return event;
10+
}
11+
12+
Future<void> main() async {
13+
await SentryFlutter.init((options) => options.beforeSend = beforeSend);
14+
}
15+
```
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
```dart
2+
import 'package:flutter/widgets.dart';
3+
import 'package:sentry_flutter/sentry_flutter.dart';
4+
5+
FutureOr<SentryEvent?> beforeSend(SentryEvent event, Hint hint) async {
6+
if (event.throwable is DatabaseException) {
7+
event = event.copyWith(fingerprint: ['database-connection-error']);
8+
}
9+
return event;
10+
}
11+
12+
Future<void> main() async {
13+
await SentryFlutter.init((options) => options.beforeSend = beforeSend);
14+
}
15+
```
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
```dart
2+
import 'package:flutter/widgets.dart';
3+
import 'package:sentry_flutter/sentry_flutter.dart';
4+
5+
class MyRpcException implements Exception {
6+
final String function;
7+
final int httpStatusCode;
8+
9+
MyRpcException(this.function, this.httpStatusCode);
10+
}
11+
12+
FutureOr<SentryEvent?> beforeSend(SentryEvent event, Hint hint) async {
13+
if (event.throwable is MyRpcException) {
14+
final exception = event.throwable as MyRpcException;
15+
event = event.copyWith(fingerprint: [
16+
'{{ default }}',
17+
exception.function,
18+
exception.httpStatusCode.toString(),
19+
]);
20+
}
21+
return event;
22+
}
23+
24+
Future<void> main() async {
25+
await SentryFlutter.init((options) => options.beforeSend = beforeSend);
26+
}
27+
```
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
```dart
2+
import 'package:flutter/widgets.dart';
3+
import 'package:sentry_flutter/sentry_flutter.dart';
4+
5+
// Option 1: Retrieving SentryId from beforeSend
6+
SentryId sentryId = SentryId.empty();
7+
8+
await SentryFlutter.init((options) {
9+
options.beforeSend = (event, hint) async {
10+
sentryId = event.eventId;
11+
return event;
12+
};
13+
});
14+
15+
// Option 2: Retrieving SentryId from the method capturing the event
16+
SentryId sentryId = Sentry.captureMessage("My message");
17+
18+
// Option 3: Retrieving SentryId from the beforeSend callback
19+
SentryId sentryId = Sentry.lastEventId;
20+
21+
final userFeedback = SentryUserFeedback(
22+
eventId: sentryId,
23+
comments: 'Hello World!',
24+
25+
name: 'John Doe',
26+
);
27+
28+
Sentry.captureUserFeedback(userFeedback);
29+
```

0 commit comments

Comments
 (0)