Skip to content

Commit

Permalink
Merge pull request #1710 from d-loose/error-observer
Browse files Browse the repository at this point in the history
feat: add ErrorObserver
  • Loading branch information
d-loose authored Jun 24, 2024
2 parents 73b4233 + 3ae157f commit 0e2f15d
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 1 deletion.
1 change: 1 addition & 0 deletions packages/app_center/lib/error/error.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export 'error_observer.dart';
15 changes: 15 additions & 0 deletions packages/app_center/lib/error/error_observer.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:ubuntu_logger/ubuntu_logger.dart';

class ErrorObserver extends ProviderObserver {
final log = Logger('error_observer');
@override
void providerDidFail(
ProviderBase<Object?> provider,
Object error,
StackTrace stackTrace,
ProviderContainer container,
) {
log.error('Provider $provider failed', error);
}
}
8 changes: 7 additions & 1 deletion packages/app_center/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import 'dart:io';

import 'package:app_center/appstream/appstream.dart';
import 'package:app_center/config.dart';
import 'package:app_center/error/error.dart';
import 'package:app_center/l10n.dart';
import 'package:app_center/packagekit/packagekit.dart';
import 'package:app_center/providers/error_stream_provider.dart';
Expand Down Expand Up @@ -79,7 +80,12 @@ Future<void> main(List<String> args) async {
await runZonedGuarded(
() async {
await YaruWindowTitleBar.ensureInitialized();
runApp(const ProviderScope(child: StoreApp()));
runApp(
ProviderScope(
observers: [ErrorObserver()],
child: const StoreApp(),
),
);
},
(error, stackTrace) {
log.error('Error propagated to top-level', error, stackTrace);
Expand Down

0 comments on commit 0e2f15d

Please sign in to comment.