logException: Also log to Sentry

This commit is contained in:
Vishesh Handa
2020-04-17 09:41:36 +02:00
parent 98b8e92437
commit 6c47016c8b
4 changed files with 24 additions and 3 deletions

View File

@ -3,6 +3,7 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter_crashlytics/flutter_crashlytics.dart';
import 'package:gitjournal/error_reporting.dart';
import 'package:path/path.dart' as p;
import 'package:collection/collection.dart';
@ -110,7 +111,7 @@ class NotesCache {
return json.decode(contents).cast<String>();
} catch (ex, st) {
Log.e("Exception - $ex for contents: $contents");
await FlutterCrashlytics().logException(ex, st);
await logException(ex, st);
return [];
}
}

View File

@ -107,3 +107,21 @@ Future<void> reportError(Object error, StackTrace stackTrace) async {
print("Uncaught Exception: $error");
print(stackTrace);
}
Future<void> logException(Exception e, StackTrace stackTrace) async {
if (!reportCrashes) {
return;
}
try {
final sentry = await getSentryClient();
await sentry.captureException(
exception: e,
stackTrace: stackTrace,
);
} catch (e) {
print("Failed to report with Sentry: $e");
}
return FlutterCrashlytics().logException(e, stackTrace);
}

View File

@ -7,6 +7,7 @@ import 'package:flutter_crashlytics/flutter_crashlytics.dart';
import 'package:gitjournal/analytics.dart';
import 'package:gitjournal/apis/githost_factory.dart';
import 'package:gitjournal/error_reporting.dart';
import 'package:gitjournal/settings.dart';
import 'package:gitjournal/utils/logger.dart';
@ -122,7 +123,7 @@ class GitHostSetupAutoConfigureState extends State<GitHostSetupAutoConfigure> {
},
);
FlutterCrashlytics().logException(e, stacktrace);
logException(e, stacktrace);
});
}

View File

@ -11,6 +11,7 @@ import 'package:gitjournal/core/notes_cache.dart';
import 'package:gitjournal/core/notes_folder.dart';
import 'package:gitjournal/core/notes_folder_fs.dart';
import 'package:gitjournal/core/git_repo.dart';
import 'package:gitjournal/error_reporting.dart';
import 'package:gitjournal/features.dart';
import 'package:gitjournal/settings.dart';
import 'package:gitjournal/utils/logger.dart';
@ -117,7 +118,7 @@ class StateContainer with ChangeNotifier {
appState.syncStatus = SyncStatus.Error;
notifyListeners();
if (shouldLogGitException(e)) {
await FlutterCrashlytics().logException(e, stacktrace);
await logException(e, stacktrace);
}
if (!doNotThrow) rethrow;
}