Skip to content

Commit 4da622c

Browse files
authored
add logging options for AppBlocObserver
2 parents 35434ab + 79f20e4 commit 4da622c

File tree

2 files changed

+49
-6
lines changed

2 files changed

+49
-6
lines changed

lib/bootstrap.dart

+4-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,10 @@ Future<void> bootstrap({required FutureOr<Widget> Function() builder}) async {
3838
storageDirectory: await getApplicationDocumentsDirectory(),
3939
);
4040
// Initialize Bloc Observer
41-
Bloc.observer = AppBlocObserver();
41+
Bloc.observer = AppBlocObserver(
42+
logEvents: false,
43+
logTransitions: false,
44+
);
4245
// Initialize Locator
4346
await Locator.locateServices();
4447
// Set Screen Orientation
+45-5
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,68 @@
1-
import 'package:flutter/foundation.dart';
21
import 'package:flutter_bloc/flutter_bloc.dart';
2+
import 'package:gpt_detector/core/utils/logger/logger_utils.dart';
33

44
final class AppBlocObserver extends BlocObserver {
5+
AppBlocObserver({
6+
this.logEvents = true,
7+
this.logChanges = true,
8+
this.logTransitions = true,
9+
this.logErrors = true,
10+
this.logCreated = true,
11+
this.logClosed = true,
12+
});
13+
14+
final bool logEvents;
15+
final bool logChanges;
16+
final bool logTransitions;
17+
final bool logErrors;
18+
final bool logCreated;
19+
final bool logClosed;
20+
521
@override
622
void onEvent(Bloc<dynamic, dynamic> bloc, Object? event) {
723
super.onEvent(bloc, event);
8-
debugPrint('${bloc.runtimeType} $event');
24+
if (logEvents) {
25+
LoggerUtils.instance.logInfo('${bloc.runtimeType} $event');
26+
}
927
}
1028

1129
@override
1230
void onChange(BlocBase<dynamic> bloc, Change<dynamic> change) {
1331
super.onChange(bloc, change);
14-
debugPrint('${bloc.runtimeType} $change');
32+
if (logChanges) {
33+
LoggerUtils.instance.logInfo('${bloc.runtimeType} $change');
34+
}
1535
}
1636

1737
@override
1838
void onTransition(Bloc<dynamic, dynamic> bloc, Transition<dynamic, dynamic> transition) {
1939
super.onTransition(bloc, transition);
20-
debugPrint('${bloc.runtimeType} $transition');
40+
if (logTransitions) {
41+
LoggerUtils.instance.logInfo('${bloc.runtimeType} $transition');
42+
}
2143
}
2244

2345
@override
2446
void onError(BlocBase<dynamic> bloc, Object error, StackTrace stackTrace) {
2547
super.onError(bloc, error, stackTrace);
26-
debugPrint('${bloc.runtimeType} $error');
48+
if (logErrors) {
49+
LoggerUtils.instance.logError('${bloc.runtimeType} $error');
50+
}
51+
}
52+
53+
@override
54+
void onClose(BlocBase<dynamic> bloc) {
55+
super.onClose(bloc);
56+
if (logClosed) {
57+
LoggerUtils.instance.logInfo('${bloc.runtimeType} closed');
58+
}
59+
}
60+
61+
@override
62+
void onCreate(BlocBase<dynamic> bloc) {
63+
super.onCreate(bloc);
64+
if (logCreated) {
65+
LoggerUtils.instance.logInfo('${bloc.runtimeType} created');
66+
}
2767
}
2868
}

0 commit comments

Comments
 (0)