From a9f300179864c9ceaedb511056d51db2aaa7b599 Mon Sep 17 00:00:00 2001 From: Vishesh Handa <me@vhanda.in> Date: Wed, 18 Nov 2020 12:53:12 +0100 Subject: [PATCH] Use StackTrace library to make the traces shorter And hopefully add some more context to some async stack traces that don't make any sense. --- lib/error_reporting.dart | 3 ++- lib/main.dart | 5 ++++- lib/utils/logger.dart | 11 +++++++++++ pubspec.lock | 2 +- pubspec.yaml | 1 + 5 files changed, 19 insertions(+), 3 deletions(-) diff --git a/lib/error_reporting.dart b/lib/error_reporting.dart index 6f696ddd..d8d9d463 100644 --- a/lib/error_reporting.dart +++ b/lib/error_reporting.dart @@ -6,6 +6,7 @@ import 'package:flutter/foundation.dart'; import 'package:device_info/device_info.dart'; import 'package:package_info/package_info.dart'; import 'package:sentry/sentry.dart'; +import 'package:stack_trace/stack_trace.dart'; import 'package:gitjournal/.env.dart'; import 'package:gitjournal/app.dart'; @@ -137,7 +138,7 @@ Future<void> captureSentryException( final sentry = await getSentryClient(); final Event event = Event( exception: exception, - stackTrace: stackTrace, + stackTrace: Trace.from(stackTrace).terse, breadcrumbs: breadcrumbs, level: level, ); diff --git a/lib/main.dart b/lib/main.dart index e6625c8a..bee2f71a 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -5,6 +5,7 @@ import 'package:flutter/foundation.dart' as foundation; import 'package:flutter/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; +import 'package:stack_trace/stack_trace.dart'; import 'package:gitjournal/app.dart'; import 'package:gitjournal/app_settings.dart'; @@ -29,6 +30,8 @@ void main() async { }).sendPort); runZonedGuarded(() async { - await JournalApp.main(pref); + await Chain.capture(() async { + await JournalApp.main(pref); + }); }, reportError); } diff --git a/lib/utils/logger.dart b/lib/utils/logger.dart index 07a4af57..fd0f2828 100644 --- a/lib/utils/logger.dart +++ b/lib/utils/logger.dart @@ -7,6 +7,7 @@ import 'package:fimber/fimber.dart'; import 'package:meta/meta.dart'; import 'package:path/path.dart' as p; import 'package:path_provider/path_provider.dart'; +import 'package:stack_trace/stack_trace.dart'; import 'package:time/time.dart'; class Log { @@ -31,6 +32,8 @@ class Log { static void v(String msg, {dynamic ex, StackTrace stacktrace, Map<String, dynamic> props}) { + stacktrace = Trace.from(stacktrace).terse; + if (foundation.kDebugMode) { Fimber.log("V", msg, ex: ex, stacktrace: stacktrace, tag: LogTree.getTag(stackIndex: 2)); @@ -40,6 +43,8 @@ class Log { static void d(String msg, {dynamic ex, StackTrace stacktrace, Map<String, dynamic> props}) { + stacktrace = Trace.from(stacktrace).terse; + if (foundation.kDebugMode) { Fimber.log("D", msg, ex: ex, stacktrace: stacktrace, tag: LogTree.getTag(stackIndex: 2)); @@ -49,6 +54,8 @@ class Log { static void i(String msg, {dynamic ex, StackTrace stacktrace, Map<String, dynamic> props}) { + stacktrace = Trace.from(stacktrace).terse; + if (foundation.kDebugMode) { Fimber.log("I", msg, ex: ex, stacktrace: stacktrace, tag: LogTree.getTag(stackIndex: 2)); @@ -58,6 +65,8 @@ class Log { static void e(String msg, {dynamic ex, StackTrace stacktrace, Map<String, dynamic> props}) { + stacktrace = Trace.from(stacktrace).terse; + if (foundation.kDebugMode) { Fimber.log("E", msg, ex: ex, stacktrace: stacktrace, tag: LogTree.getTag(stackIndex: 2)); @@ -67,6 +76,8 @@ class Log { static void w(String msg, {dynamic ex, StackTrace stacktrace, Map<String, dynamic> props}) { + stacktrace = Trace.from(stacktrace).terse; + if (foundation.kDebugMode) { Fimber.log("W", msg, ex: ex, stacktrace: stacktrace, tag: LogTree.getTag(stackIndex: 2)); diff --git a/pubspec.lock b/pubspec.lock index daf15e62..dbf6cac4 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -962,7 +962,7 @@ packages: source: hosted version: "0.6.0" stack_trace: - dependency: transitive + dependency: "direct main" description: name: stack_trace url: "https://pub.dartlang.org" diff --git a/pubspec.yaml b/pubspec.yaml index cd6d9730..3ed79252 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,6 +16,7 @@ dependencies: url_launcher: ^5.4.1 dots_indicator: ^0.0.3 package_info: ">=0.4.1 <2.0.0" + stack_trace: ^1.9.6 http: ^0.12.0+1 badges: ^1.1.1 share: ^0.6.3+5