From 99228750bc2cba43c5dbb7b10aa56c53b7dbb4ff Mon Sep 17 00:00:00 2001 From: Jeet Ardeshna Date: Fri, 12 Jun 2020 13:26:00 +0530 Subject: [PATCH] Replace Sentry with Crashlytics --- README.md | 4 +- .../crashlytics_error_logger.dart | 9 +++++ lib/src/error_logger/error_logger.dart | 38 +------------------ lib/src/error_logger/sentry_error_logger.dart | 38 ------------------- pubspec.yaml | 2 - 5 files changed, 13 insertions(+), 78 deletions(-) create mode 100644 lib/src/error_logger/crashlytics_error_logger.dart delete mode 100644 lib/src/error_logger/sentry_error_logger.dart diff --git a/README.md b/README.md index c2faa62..b2b4c27 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,8 @@ Modes: Debug, Release, Profile. ### Localization Localization support based on [Easy Localization](https://pub.dev/packages/easy_localization) -### Custom Logger (Default Sentry) -Abstract layer for a custom logger. It has default implementation of [Sentry](https://sentry.io/welcome/). +### Custom Logger (Default Crashlytics) +Abstract layer for a custom logger. It has default implementation of [Crashlytics](https://firebase.google.com/products/crashlytics/). It can again be replaced with any other services. ### Firebase Crashalytics diff --git a/lib/src/error_logger/crashlytics_error_logger.dart b/lib/src/error_logger/crashlytics_error_logger.dart new file mode 100644 index 0000000..593cbc5 --- /dev/null +++ b/lib/src/error_logger/crashlytics_error_logger.dart @@ -0,0 +1,9 @@ +import 'package:firebase_crashlytics/firebase_crashlytics.dart'; +import 'package:flutter_base_project/src/error_logger/error_logger.dart'; + +class CrashlyticsErrorLogger implements ErrorLogger { + @override + Future logEvent({dynamic exception, StackTrace stackTrace}) async { + Crashlytics.instance.recordError(exception, stackTrace); + } +} diff --git a/lib/src/error_logger/error_logger.dart b/lib/src/error_logger/error_logger.dart index 386c10d..cdcdf37 100644 --- a/lib/src/error_logger/error_logger.dart +++ b/lib/src/error_logger/error_logger.dart @@ -1,7 +1,4 @@ -import 'package:device_info/device_info.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter_base_project/src/error_logger/sentry_error_logger.dart'; -import 'package:package_info/package_info.dart'; +import 'package:flutter_base_project/src/error_logger/crashlytics_error_logger.dart'; abstract class ErrorLogger { Future logEvent({ @@ -10,37 +7,6 @@ abstract class ErrorLogger { }); } -Future> tags() async { - final info = await PackageInfo.fromPlatform(); - return { - "platform": defaultTargetPlatform.toString(), - "package_name": info.packageName, - "build_number": info.buildNumber, - "version": info.version, - }; -} - -Future> extras() async { - final deviceInfo = DeviceInfoPlugin(); - final Map extras = {}; - if (defaultTargetPlatform == TargetPlatform.android) { - final info = await deviceInfo.androidInfo; - extras['device_info'] = { - "model": info.model, - "brand": info.brand, - "manufacturer": info.manufacturer, - "version": info.version.release, - }; - } else if (defaultTargetPlatform == TargetPlatform.iOS) { - final info = await deviceInfo.iosInfo; - extras['device_info'] = { - "model": info.model, - "version": info.systemVersion, - }; - } - return extras; -} - ErrorLogger getErrorLogger() { - return SentryErrorLogger(); + return CrashlyticsErrorLogger(); } diff --git a/lib/src/error_logger/sentry_error_logger.dart b/lib/src/error_logger/sentry_error_logger.dart deleted file mode 100644 index 811a935..0000000 --- a/lib/src/error_logger/sentry_error_logger.dart +++ /dev/null @@ -1,38 +0,0 @@ -import 'package:flutter/foundation.dart'; -import 'package:flutter_base_project/src/error_logger/error_logger.dart'; -import 'package:sentry/sentry.dart'; - -class SentryErrorLogger implements ErrorLogger { - SentryClient _client; - - static final _instance = SentryErrorLogger._(); - - factory SentryErrorLogger() { - return _instance; - } - - SentryErrorLogger._() { - _getSentryClientDSN() - .then((dsn) => _client = SentryClient(dsn: dsn)) - .catchError((err) => debugPrint(err.toString())); - } - - Future _getSentryClientDSN() async { - //TODO Add Sentry DSN - return "DSN"; - } - - @override - Future logEvent({dynamic exception, StackTrace stackTrace}) async { - final extraData = await extras(); - final tagsData = await tags(); - return _client.capture( - event: Event( - exception: exception, - stackTrace: stackTrace, - extra: extraData, - tags: tagsData, - ), - ); - } -} diff --git a/pubspec.yaml b/pubspec.yaml index 9717084..3236d09 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -20,8 +20,6 @@ dependencies: package_info: ^0.4.0+16 - sentry: ^3.0.1 - url_launcher: ^5.4.2 #Firebase