Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
95424be
fix
marandaneto Oct 27, 2020
9e22b47
Update src/platforms/flutter/index.mdx
marandaneto Oct 27, 2020
1052fb9
added missing docs
marandaneto Oct 28, 2020
2e0feb3
Update src/includes/configure-scope/flutter.mdx
marandaneto Oct 28, 2020
07c46c0
Update src/includes/sensitive-data/set-tag/flutter.mdx
marandaneto Oct 28, 2020
72bd0b0
Update src/includes/sensitive-data/set-user/flutter.mdx
marandaneto Oct 28, 2020
c3f4863
fix
marandaneto Oct 28, 2020
32873b3
added missing docs
marandaneto Oct 28, 2020
f0e6844
fix
marandaneto Oct 28, 2020
449c51e
fix
marandaneto Oct 28, 2020
3f4ebfe
fix
marandaneto Oct 28, 2020
749de8c
wizard
marandaneto Oct 28, 2020
b5acf5b
fixes
marandaneto Oct 28, 2020
6118def
import
marandaneto Oct 28, 2020
5e19fcd
Update src/platforms/flutter/index.mdx
marandaneto Oct 28, 2020
e68c585
Update src/wizard/flutter/index.md
marandaneto Oct 28, 2020
c97b4a2
Update src/includes/configuration/config-intro/flutter.mdx
marandaneto Oct 29, 2020
be0c372
Update src/includes/configuration/sample-rate/flutter.mdx
marandaneto Oct 29, 2020
dde61c9
Update src/includes/set-tag/flutter.mdx
marandaneto Oct 29, 2020
db8514a
Update src/includes/set-environment/flutter.mdx
marandaneto Oct 29, 2020
82b5a62
Update src/platforms/flutter/index.mdx
marandaneto Oct 29, 2020
b122ad4
Update src/platforms/flutter/index.mdx
marandaneto Oct 29, 2020
2bdfb17
Update src/includes/capture-error/flutter.mdx
marandaneto Oct 30, 2020
ec5cc38
Update src/includes/capture-error/flutter.mdx
marandaneto Oct 30, 2020
c0f1b6a
Update src/includes/capture-message/flutter.mdx
marandaneto Oct 30, 2020
15f0de2
Update src/includes/getting-started-verify/flutter.mdx
marandaneto Oct 30, 2020
e22b3a8
Update src/includes/set-user/flutter.mdx
marandaneto Oct 30, 2020
1158de1
Update src/includes/getting-started-verify/flutter.mdx
marandaneto Oct 30, 2020
f68660f
fix examples
marandaneto Oct 30, 2020
0af20ff
Merge branch 'master' into ref/flutter-v4
marandaneto Nov 23, 2020
a8ebb39
add new platform
marandaneto Nov 24, 2020
9fecdd6
add index
marandaneto Nov 24, 2020
e7b0203
rename files
marandaneto Nov 24, 2020
3585c1a
ref
marandaneto Nov 24, 2020
be43f25
no need of future main methods
marandaneto Nov 24, 2020
8048aec
fix dart files
marandaneto Nov 24, 2020
5315d67
add specific Flutter files
marandaneto Nov 24, 2020
77aeac7
add drain example for Flutter
marandaneto Nov 24, 2020
0a0267f
fix wizard
marandaneto Nov 24, 2020
965ed3b
adding missing futures
marandaneto Nov 25, 2020
9131542
fix
marandaneto Nov 25, 2020
2b8d832
added missing focs
marandaneto Nov 25, 2020
98944b3
fix
marandaneto Nov 25, 2020
9d13d25
add prime content
marandaneto Nov 25, 2020
7ff5ac2
fixes
marandaneto Nov 25, 2020
3557f31
remove main method from non init methods
marandaneto Nov 25, 2020
6aaa299
fix
marandaneto Nov 25, 2020
23a9774
workaround
marandaneto Nov 25, 2020
6226987
remove links
marandaneto Nov 25, 2020
4ba299f
fixes
marandaneto Nov 25, 2020
ef0c598
fix
marandaneto Nov 25, 2020
ad64d3e
add next steps
marandaneto Nov 25, 2020
5345289
added dart and flutter to not supported for PII
marandaneto Nov 25, 2020
94eb169
remove duplicated next steps
marandaneto Nov 25, 2020
bb1389c
hide user feedback for flutter
marandaneto Nov 26, 2020
2f66247
add caveat section
marandaneto Nov 26, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
ref
  • Loading branch information
marandaneto committed Nov 24, 2020
commit 3585c1ad524b99736eddb440e5f0deab1430f5c3
6 changes: 4 additions & 2 deletions src/includes/before-breadcrumb/dart.mdx
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
```dart
import 'package:sentry/sentry.dart';
import 'package:sentry/sentry.dart';

void main() async {
Breadcrumb beforeBreadCrumb(Breadcrumb crumb, dynamic hint) {
return 'a.spammy.Logger' == crumb.category ? null : crumb;
}

Sentry.init((options) => options.beforeBreadcrumb = beforeBreadCrumb);
await Sentry.init((options) => options.beforeBreadcrumb = beforeBreadCrumb);
}
```
18 changes: 3 additions & 15 deletions src/includes/breadcrumbs-example/dart.mdx
Original file line number Diff line number Diff line change
@@ -1,19 +1,7 @@
```dart
import 'package:sentry/sentry.dart';

void scope(Scope scope) {
final crumb = Breadcrumb(
message: 'Authenticated user ${scope.user.email}',
category: 'auth',
level: SentryLevel.info,
);

scope.addBreadcrumb(crumb);
}

Sentry.configureScope(scope);

// or
import 'package:sentry/sentry.dart';

void main() async {
Sentry.addBreadcrumb(Breadcrumb(message: 'Authenticated user'));
}
```
19 changes: 10 additions & 9 deletions src/includes/capture-error/dart.mdx
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
In Dart you can capture any exception object that you caught:

```dart
import 'package:sentry/sentry.dart';
import 'package:sentry/sentry.dart';

void main() async {
try {
aMethodThatMightFail();
} catch (exception, stackTrace) {
await Sentry.captureException(exception, stackTrace: stackTrace);
await Sentry.captureException(
exception,
stackTrace: stackTrace,
);
}
}

// or

try {
throw 'Not implemented';
} catch (exception, stackTrace) {
await Sentry.captureException(exception, stackTrace: stackTrace);
}
void aMethodThatMightFail() {
throw null;
}
```
4 changes: 3 additions & 1 deletion src/includes/capture-message/dart.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
```dart
import 'package:sentry/sentry.dart';
import 'package:sentry/sentry.dart';

void main() async {
await Sentry.captureMessage('Something went wrong');
}
```
10 changes: 5 additions & 5 deletions src/includes/configure-scope/dart.mdx
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
```dart
import 'package:sentry/sentry.dart';
import 'package:sentry/sentry.dart';

void scope(Scope scope) {
void main() {
Sentry.configureScope((scope) {
scope.setTag('my-tag', 'my value');
final user = User(id: '42', email: '[email protected]');
scope.user = user;
}

Sentry.configureScope(scope);
});
}
```
6 changes: 4 additions & 2 deletions src/includes/getting-started-config/dart.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
```dart
import 'package:sentry/sentry.dart';
import 'package:sentry/sentry.dart';

Sentry.init((options) => options.dsn = '___PUBLIC_DSN___');
Future<void> main() async {
await Sentry.init((options) => options.dsn = '___PUBLIC_DSN___');
}
```
19 changes: 11 additions & 8 deletions src/includes/getting-started-verify/dart.mdx
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
```dart
// Throw an exception and capture it with the Sentry client:
try {
throw null;
} catch (exception, stackTrace) {
await Sentry.captureException(
exception,
stackTrace: stackTrace,
);
import 'package:sentry/sentry.dart';

Future<void> main() async {
try {
throw null;
} catch (exception, stackTrace) {
await Sentry.captureException(
exception,
stackTrace: stackTrace,
);
}
}
```
4 changes: 3 additions & 1 deletion src/includes/sensitive-data/set-tag/dart.mdx
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
```dart
import 'package:sentry/sentry.dart';
import 'package:sentry/sentry.dart';

void main() {
Sentry.configureScope((scope) => scope.setTag(
'birthday',
checksumOrHash('08/12/1990'),
));
}
```
4 changes: 3 additions & 1 deletion src/includes/sensitive-data/set-user/dart.mdx
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
```dart
import 'package:sentry/sentry.dart';
import 'package:sentry/sentry.dart';

void main() {
Sentry.configureScope((scope) => scope.user = User(
id: clientUser.id,
username: clientUser.username,
));
}
```
16 changes: 8 additions & 8 deletions src/includes/set-context/dart.mdx
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
```dart
import 'package:sentry/sentry.dart';
import 'package:sentry/sentry.dart';

void scope(Scope scope) {
scope.setExtra('name', 'Mighty Fighter');
scope.setExtra('age', 19);
scope.setExtra('attack_type', 'melee');
}

Sentry.configureScope(scope);
void main() {
final person = {
'name': 'Mighty Fighter',
'age': '19',
};
Sentry.configureScope((scope) => scope.setContexts('person', person));
}
```
4 changes: 3 additions & 1 deletion src/includes/set-environment/dart.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
```dart
import 'package:sentry/sentry.dart';
import 'package:sentry/sentry.dart';

void main() {
Sentry.init((options) => options.environment = 'staging');
}
```
4 changes: 3 additions & 1 deletion src/includes/set-extra/dart.mdx
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
```dart
import 'package:sentry/sentry.dart';
import 'package:sentry/sentry.dart';

void main() {
Sentry.configureScope((scope) => scope.setExtra(
'character.name',
'Mighty Fighter',
));
}
```
14 changes: 8 additions & 6 deletions src/includes/set-fingerprint/basic/dart.mdx
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
```dart
import 'package:sentry/sentry.dart';
import 'package:sentry/sentry.dart';

SentryEvent beforeSend(SentryEvent event, dynamic hint) {
if (event.exception is DatabaseException) {
event = event.copyWith(fingerprint: ['database-connection-error']);
}
return event;
SentryEvent beforeSend(SentryEvent event, dynamic hint) {
if (event.exception is DatabaseException) {
event = event.copyWith(fingerprint: ['database-connection-error']);
}
return event;
}

void main() {
Sentry.init((options) => options.beforeSend = beforeSend);
}
```
14 changes: 8 additions & 6 deletions src/includes/set-fingerprint/database-connection/dart.mdx
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
```dart
import 'package:sentry/sentry.dart';
import 'package:sentry/sentry.dart';

SentryEvent beforeSend(SentryEvent event, dynamic hint) {
if (event.exception is DatabaseException) {
event = event.copyWith(fingerprint: ['database-connection-error']);
}
return event;
SentryEvent beforeSend(SentryEvent event, dynamic hint) {
if (event.exception is DatabaseException) {
event = event.copyWith(fingerprint: ['database-connection-error']);
}
return event;
}

void main() {
Sentry.init((options) => options.beforeSend = beforeSend);
}
```
34 changes: 18 additions & 16 deletions src/includes/set-fingerprint/rpc/dart.mdx
Original file line number Diff line number Diff line change
@@ -1,24 +1,26 @@
```dart
import 'package:sentry/sentry.dart';
import 'package:sentry/sentry.dart';

class MyRpcException implements Exception {
final String function;
final int httpStatusCode;
class MyRpcException implements Exception {
final String function;
final int httpStatusCode;

MyRpcException(this.function, this.httpStatusCode);
}
MyRpcException(this.function, this.httpStatusCode);
}

SentryEvent beforeSend(SentryEvent event, dynamic hint) {
if (event.exception is MyRpcException) {
final exception = event.exception as MyRpcException;
event = event.copyWith(fingerprint: [
'{{ default }}',
exception.function,
exception.httpStatusCode.toString(),
]);
}
return event;
SentryEvent beforeSend(SentryEvent event, dynamic hint) {
if (event.exception is MyRpcException) {
final exception = event.exception as MyRpcException;
event = event.copyWith(fingerprint: [
'{{ default }}',
exception.function,
exception.httpStatusCode.toString(),
]);
}
return event;
}

void main() {
Sentry.init((options) => options.beforeSend = beforeSend);
}
```
4 changes: 3 additions & 1 deletion src/includes/set-fingerprint/static/dart.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
```dart
import 'package:sentry/sentry.dart';
import 'package:sentry/sentry.dart';

void main() {
Sentry.configureScope((scope) => scope.fingerprint = ['auth-error']);
}
```
4 changes: 3 additions & 1 deletion src/includes/set-level/dart.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
```dart
import 'package:sentry/sentry.dart';
import 'package:sentry/sentry.dart';

void main() {
Sentry.configureScope((scope) => scope.level = SentryLevel.warning);
}
```
6 changes: 4 additions & 2 deletions src/includes/set-release/dart.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
```dart
import 'package:sentry/sentry.dart';
import 'package:sentry/sentry.dart';

Sentry.init((options) => options.release = '[email protected]');
void main() {
Sentry.init((options) => options.release = '[email protected]+12');
}
```
4 changes: 3 additions & 1 deletion src/includes/set-tag/dart.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
```dart
import 'package:sentry/sentry.dart';
import 'package:sentry/sentry.dart';

void main() {
Sentry.configureScope((scope) => scope.setTag('page.locale', 'pt-BR'));
}
```
4 changes: 3 additions & 1 deletion src/includes/set-user/dart.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
```dart
import 'package:sentry/sentry.dart';
import 'package:sentry/sentry.dart';

void main() {
Sentry.configureScope(
(scope) => scope.user = User(email: '[email protected]'),
);
}
```
4 changes: 3 additions & 1 deletion src/includes/unset-user/dart.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
```dart
import 'package:sentry/sentry.dart';
import 'package:sentry/sentry.dart';

void main() {
Sentry.configureScope((scope) => scope.user = null);
}
```
39 changes: 1 addition & 38 deletions src/platforms/dart/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,51 +2,14 @@
title: Dart
---

Get the SDK from from [pub.dev](https://pub.dev/packages/sentry) by adding the following to your `pubspec.yaml`:
Get the SDK from [pub.dev](https://pub.dev/packages/sentry) by adding the following to your `pubspec.yaml`:

<PlatformContent includePath="getting-started-install" />

Import `Sentry` and initialize it:

<PlatformContent includePath="getting-started-config" />

Run the whole app in a zone to capture all uncaught errors:

```dart
import 'dart:async';
import 'package:flutter/widgets.dart';
import 'package:sentry/sentry.dart';

// Wrap your 'runApp(MyApp())' as follows:

void main() {
runZonedGuarded(() {
runApp(MyApp());
}, (exception, stackTrace) async {
await Sentry.captureException(
exception,
stackTrace: stackTrace,
);
});
}
```

Catch Flutter specific errors by subscribing to `FlutterError.onError`:

```dart
import 'package:flutter/foundation.dart';
import 'package:sentry/sentry.dart';

void main() {
FlutterError.onError = (FlutterErrorDetails details) async {
await Sentry.captureException(
details.exception,
stackTrace: details.stack,
);
};
}
```

Capture a test exception:

<PlatformContent includePath="getting-started-verify" />
Expand Down
3 changes: 3 additions & 0 deletions src/platforms/flutter/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,6 @@ caseStyle: canonical
supportLevel: production
sdk: sentry.dart.flutter
fallbackPlatform: dart
categories:
- mobile
- browser
Loading