diff --git a/lib/app_bloc_observer.dart b/lib/app_bloc_observer.dart
new file mode 100644
index 0000000000000000000000000000000000000000..532b79fcd0f819f98a5364b721eeb21b65e0c046
--- /dev/null
+++ b/lib/app_bloc_observer.dart
@@ -0,0 +1,37 @@
+import 'package:bloc/bloc.dart';
+
+import 'main.dart';
+
+class AppBlocObserver extends BlocObserver {
+  @override
+  void onCreate(BlocBase<dynamic> bloc) {
+    super.onCreate(bloc);
+    logger('onCreate -- ${bloc.runtimeType}');
+  }
+
+  @override
+  void onEvent(Bloc<dynamic, dynamic> bloc, Object? event) {
+    super.onEvent(bloc, event);
+    logger('onEvent -- $event');
+  }
+
+  @override
+  void onTransition(
+      Bloc<dynamic, dynamic> bloc, Transition<dynamic, dynamic> transition) {
+    super.onTransition(bloc, transition);
+    logger('onTransition -- $transition');
+  }
+
+  @override
+  void onError(BlocBase<dynamic> bloc, Object error, StackTrace stackTrace) {
+    super.onError(bloc, error, stackTrace);
+    logger('onError -- $error');
+    logger(stackTrace);
+  }
+
+  @override
+  void onClose(BlocBase<dynamic> bloc) {
+    super.onClose(bloc);
+    logger('onClose -- ${bloc.runtimeType}');
+  }
+}