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

View File

@ -107,3 +107,21 @@ Future<void> reportError(Object error, StackTrace stackTrace) async {
print("Uncaught Exception: $error"); print("Uncaught Exception: $error");
print(stackTrace); 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/analytics.dart';
import 'package:gitjournal/apis/githost_factory.dart'; import 'package:gitjournal/apis/githost_factory.dart';
import 'package:gitjournal/error_reporting.dart';
import 'package:gitjournal/settings.dart'; import 'package:gitjournal/settings.dart';
import 'package:gitjournal/utils/logger.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.dart';
import 'package:gitjournal/core/notes_folder_fs.dart'; import 'package:gitjournal/core/notes_folder_fs.dart';
import 'package:gitjournal/core/git_repo.dart'; import 'package:gitjournal/core/git_repo.dart';
import 'package:gitjournal/error_reporting.dart';
import 'package:gitjournal/features.dart'; import 'package:gitjournal/features.dart';
import 'package:gitjournal/settings.dart'; import 'package:gitjournal/settings.dart';
import 'package:gitjournal/utils/logger.dart'; import 'package:gitjournal/utils/logger.dart';
@ -117,7 +118,7 @@ class StateContainer with ChangeNotifier {
appState.syncStatus = SyncStatus.Error; appState.syncStatus = SyncStatus.Error;
notifyListeners(); notifyListeners();
if (shouldLogGitException(e)) { if (shouldLogGitException(e)) {
await FlutterCrashlytics().logException(e, stacktrace); await logException(e, stacktrace);
} }
if (!doNotThrow) rethrow; if (!doNotThrow) rethrow;
} }