Improve bloc logs

This commit is contained in:
Ming Ming 2023-07-29 00:48:50 +08:00
parent 244a76c6df
commit b2e96f69d2
25 changed files with 52 additions and 38 deletions

View file

@ -1,4 +1,4 @@
abstract class BlocLogger { mixin BlocLogger {
String? get tag => null; String? get tag => null;
bool Function(dynamic currentState, dynamic nextState)? get shouldLog => null; bool Function(dynamic currentState, dynamic nextState)? get shouldLog => null;

View file

@ -1,7 +1,7 @@
part of '../account_picker_dialog.dart'; part of '../account_picker_dialog.dart';
@npLog @npLog
class _Bloc extends Bloc<_Event, _State> implements BlocLogger { class _Bloc extends Bloc<_Event, _State> with BlocLogger {
_Bloc({ _Bloc({
required DiContainer container, required DiContainer container,
required this.accountController, required this.accountController,
@ -32,9 +32,6 @@ class _Bloc extends Bloc<_Event, _State> implements BlocLogger {
@override @override
String get tag => _log.fullName; String get tag => _log.fullName;
@override
bool Function(dynamic, dynamic)? get shouldLog => null;
void _onToggleDropdown(_ToggleDropdown ev, Emitter<_State> emit) { void _onToggleDropdown(_ToggleDropdown ev, Emitter<_State> emit) {
_log.info(ev); _log.info(ev);
emit(state.copyWith(isOpenDropdown: !state.isOpenDropdown)); emit(state.copyWith(isOpenDropdown: !state.isOpenDropdown));

View file

@ -1,7 +1,7 @@
part of '../collection_browser.dart'; part of '../collection_browser.dart';
@npLog @npLog
class _Bloc extends Bloc<_Event, _State> implements BlocLogger { class _Bloc extends Bloc<_Event, _State> with BlocLogger {
_Bloc({ _Bloc({
required DiContainer container, required DiContainer container,
required this.account, required this.account,
@ -81,9 +81,6 @@ class _Bloc extends Bloc<_Event, _State> implements BlocLogger {
return super.close(); return super.close();
} }
@override
String get tag => _log.fullName;
@override @override
bool Function(dynamic, dynamic)? get shouldLog => (currentState, nextState) { bool Function(dynamic, dynamic)? get shouldLog => (currentState, nextState) {
return currentState.scale == nextState.scale; return currentState.scale == nextState.scale;

View file

@ -1,7 +1,7 @@
part of '../collection_picker.dart'; part of '../collection_picker.dart';
@npLog @npLog
class _Bloc extends Bloc<_Event, _State> implements BlocLogger { class _Bloc extends Bloc<_Event, _State> with BlocLogger {
_Bloc({ _Bloc({
required this.account, required this.account,
required this.controller, required this.controller,
@ -16,9 +16,6 @@ class _Bloc extends Bloc<_Event, _State> implements BlocLogger {
@override @override
String get tag => _log.fullName; String get tag => _log.fullName;
@override
bool Function(dynamic, dynamic)? get shouldLog => null;
@override @override
void onError(Object error, StackTrace stackTrace) { void onError(Object error, StackTrace stackTrace) {
// we need this to prevent onError being triggered recursively // we need this to prevent onError being triggered recursively

View file

@ -6,6 +6,7 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';
import 'package:nc_photos/account.dart'; import 'package:nc_photos/account.dart';
import 'package:nc_photos/app_localizations.dart'; import 'package:nc_photos/app_localizations.dart';
import 'package:nc_photos/bloc_util.dart';
import 'package:nc_photos/controller/account_controller.dart'; import 'package:nc_photos/controller/account_controller.dart';
import 'package:nc_photos/controller/collections_controller.dart'; import 'package:nc_photos/controller/collections_controller.dart';
import 'package:nc_photos/controller/server_controller.dart'; import 'package:nc_photos/controller/server_controller.dart';

View file

@ -1,7 +1,7 @@
part of '../export_collection_dialog.dart'; part of '../export_collection_dialog.dart';
@npLog @npLog
class _Bloc extends Bloc<_Event, _State> { class _Bloc extends Bloc<_Event, _State> with BlocLogger {
_Bloc({ _Bloc({
required this.account, required this.account,
required this.collectionsController, required this.collectionsController,
@ -14,6 +14,9 @@ class _Bloc extends Bloc<_Event, _State> {
on<_SetError>(_onSetError); on<_SetError>(_onSetError);
} }
@override
String get tag => _log.fullName;
@override @override
void onError(Object error, StackTrace stackTrace) { void onError(Object error, StackTrace stackTrace) {
// we need this to prevent onError being triggered recursively // we need this to prevent onError being triggered recursively

View file

@ -1,7 +1,7 @@
part of '../file_sharer_dialog.dart'; part of '../file_sharer_dialog.dart';
@npLog @npLog
class _Bloc extends Bloc<_Event, _State> implements BlocLogger { class _Bloc extends Bloc<_Event, _State> with BlocLogger {
_Bloc({ _Bloc({
required DiContainer container, required DiContainer container,
required this.account, required this.account,
@ -19,9 +19,6 @@ class _Bloc extends Bloc<_Event, _State> implements BlocLogger {
@override @override
String get tag => _log.fullName; String get tag => _log.fullName;
@override
bool Function(dynamic, dynamic)? get shouldLog => null;
@override @override
void onError(Object error, StackTrace stackTrace) { void onError(Object error, StackTrace stackTrace) {
// we need this to prevent onError being triggered recursively // we need this to prevent onError being triggered recursively

View file

@ -1,7 +1,7 @@
part of '../home_collections.dart'; part of '../home_collections.dart';
@npLog @npLog
class _Bloc extends Bloc<_Event, _State> implements BlocLogger { class _Bloc extends Bloc<_Event, _State> with BlocLogger {
_Bloc({ _Bloc({
required this.account, required this.account,
required this.controller, required this.controller,
@ -34,9 +34,6 @@ class _Bloc extends Bloc<_Event, _State> implements BlocLogger {
@override @override
String get tag => _log.fullName; String get tag => _log.fullName;
@override
bool Function(dynamic, dynamic)? get shouldLog => null;
@override @override
void onError(Object error, StackTrace stackTrace) { void onError(Object error, StackTrace stackTrace) {
// we need this to prevent onError being triggered recursively // we need this to prevent onError being triggered recursively

View file

@ -6,6 +6,7 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';
import 'package:nc_photos/account.dart'; import 'package:nc_photos/account.dart';
import 'package:nc_photos/app_localizations.dart'; import 'package:nc_photos/app_localizations.dart';
import 'package:nc_photos/bloc_util.dart';
import 'package:nc_photos/controller/account_controller.dart'; import 'package:nc_photos/controller/account_controller.dart';
import 'package:nc_photos/controller/server_controller.dart'; import 'package:nc_photos/controller/server_controller.dart';
import 'package:nc_photos/entity/album.dart'; import 'package:nc_photos/entity/album.dart';

View file

@ -1,7 +1,7 @@
part of '../new_collection_dialog.dart'; part of '../new_collection_dialog.dart';
@npLog @npLog
class _Bloc extends Bloc<_Event, _State> { class _Bloc extends Bloc<_Event, _State> with BlocLogger {
_Bloc({ _Bloc({
required this.account, required this.account,
required Set<_ProviderOption> supportedProviders, required Set<_ProviderOption> supportedProviders,
@ -15,6 +15,9 @@ class _Bloc extends Bloc<_Event, _State> {
on<_SetError>(_onSetError); on<_SetError>(_onSetError);
} }
@override
String get tag => _log.fullName;
@override @override
void onError(Object error, StackTrace stackTrace) { void onError(Object error, StackTrace stackTrace) {
// we need this to prevent onError being triggered recursively // we need this to prevent onError being triggered recursively

View file

@ -1,7 +1,7 @@
part of '../people_browser.dart'; part of '../people_browser.dart';
@npLog @npLog
class _Bloc extends Bloc<_Event, _State> implements BlocLogger { class _Bloc extends Bloc<_Event, _State> with BlocLogger {
_Bloc({ _Bloc({
required this.account, required this.account,
required this.personsController, required this.personsController,
@ -13,9 +13,6 @@ class _Bloc extends Bloc<_Event, _State> implements BlocLogger {
@override @override
String get tag => _log.fullName; String get tag => _log.fullName;
@override
bool Function(dynamic, dynamic)? get shouldLog => null;
Future<void> _onLoad(_LoadPersons ev, Emitter<_State> emit) { Future<void> _onLoad(_LoadPersons ev, Emitter<_State> emit) {
_log.info(ev); _log.info(ev);
return emit.forEach<PersonStreamEvent>( return emit.forEach<PersonStreamEvent>(

View file

@ -1,7 +1,7 @@
part of '../account_settings.dart'; part of '../account_settings.dart';
@npLog @npLog
class _Bloc extends Bloc<_Event, _State> { class _Bloc extends Bloc<_Event, _State> with BlocLogger {
_Bloc({ _Bloc({
required DiContainer container, required DiContainer container,
required Account account, required Account account,
@ -53,6 +53,9 @@ class _Bloc extends Bloc<_Event, _State> {
on<_SetError>(_onSetError); on<_SetError>(_onSetError);
} }
@override
String get tag => _log.fullName;
@override @override
Future<void> close() { Future<void> close() {
for (final s in _subscriptions) { for (final s in _subscriptions) {

View file

@ -7,6 +7,7 @@ import 'package:kiwi/kiwi.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';
import 'package:nc_photos/account.dart'; import 'package:nc_photos/account.dart';
import 'package:nc_photos/app_localizations.dart'; import 'package:nc_photos/app_localizations.dart';
import 'package:nc_photos/bloc_util.dart';
import 'package:nc_photos/controller/account_controller.dart'; import 'package:nc_photos/controller/account_controller.dart';
import 'package:nc_photos/controller/account_pref_controller.dart'; import 'package:nc_photos/controller/account_pref_controller.dart';
import 'package:nc_photos/di_container.dart'; import 'package:nc_photos/di_container.dart';

View file

@ -1,7 +1,7 @@
part of '../developer_settings.dart'; part of '../developer_settings.dart';
@npLog @npLog
class _Bloc extends Bloc<_Event, _State> { class _Bloc extends Bloc<_Event, _State> with BlocLogger {
_Bloc(DiContainer c) _Bloc(DiContainer c)
: _c = c, : _c = c,
super(const _State()) { super(const _State()) {
@ -13,6 +13,9 @@ class _Bloc extends Bloc<_Event, _State> {
on<_SetError>(_onSetError); on<_SetError>(_onSetError);
} }
@override
String get tag => _log.fullName;
@override @override
void onError(Object error, StackTrace stackTrace) { void onError(Object error, StackTrace stackTrace) {
// we need this to prevent onError being triggered recursively // we need this to prevent onError being triggered recursively

View file

@ -9,13 +9,16 @@ class _Error {
} }
@npLog @npLog
class _Bloc extends Bloc<_Event, _State> { class _Bloc extends Bloc<_Event, _State> with BlocLogger {
_Bloc(DiContainer c) _Bloc(DiContainer c)
: _c = c, : _c = c,
super(const _State()) { super(const _State()) {
on<_ClearCacheDatabase>(_onClearCacheDatabase); on<_ClearCacheDatabase>(_onClearCacheDatabase);
} }
@override
String get tag => _log.fullName;
Stream<_Error> errorStream() => _errorStream.stream; Stream<_Error> errorStream() => _errorStream.stream;
Future<void> _onClearCacheDatabase( Future<void> _onClearCacheDatabase(

View file

@ -6,6 +6,7 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:kiwi/kiwi.dart'; import 'package:kiwi/kiwi.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';
import 'package:nc_photos/app_localizations.dart'; import 'package:nc_photos/app_localizations.dart';
import 'package:nc_photos/bloc_util.dart';
import 'package:nc_photos/di_container.dart'; import 'package:nc_photos/di_container.dart';
import 'package:nc_photos/entity/pref.dart'; import 'package:nc_photos/entity/pref.dart';
import 'package:nc_photos/entity/sqlite/database.dart'; import 'package:nc_photos/entity/sqlite/database.dart';

View file

@ -1,7 +1,7 @@
part of '../language_settings.dart'; part of '../language_settings.dart';
@npLog @npLog
class _Bloc extends Bloc<_Event, _State> implements BlocLogger { class _Bloc extends Bloc<_Event, _State> with BlocLogger {
_Bloc({ _Bloc({
required this.prefController, required this.prefController,
}) : super(_State.init( }) : super(_State.init(
@ -15,9 +15,6 @@ class _Bloc extends Bloc<_Event, _State> implements BlocLogger {
@override @override
String get tag => _log.fullName; String get tag => _log.fullName;
@override
bool Function(dynamic, dynamic)? get shouldLog => null;
@override @override
void onError(Object error, StackTrace stackTrace) { void onError(Object error, StackTrace stackTrace) {
// we need this to prevent onError being triggered recursively // we need this to prevent onError being triggered recursively

View file

@ -1,7 +1,7 @@
part of '../metadata_settings.dart'; part of '../metadata_settings.dart';
@npLog @npLog
class _Bloc extends Bloc<_Event, _State> { class _Bloc extends Bloc<_Event, _State> with BlocLogger {
_Bloc({ _Bloc({
required this.prefController, required this.prefController,
}) : super(_State( }) : super(_State(
@ -13,6 +13,9 @@ class _Bloc extends Bloc<_Event, _State> {
on<_SetWifiOnly>(_onSetWifiOnly); on<_SetWifiOnly>(_onSetWifiOnly);
} }
@override
String get tag => _log.fullName;
Future<void> _onInit(_Init ev, Emitter<_State> emit) async { Future<void> _onInit(_Init ev, Emitter<_State> emit) async {
_log.info(ev); _log.info(ev);
await Future.wait([ await Future.wait([

View file

@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';
import 'package:nc_photos/app_localizations.dart'; import 'package:nc_photos/app_localizations.dart';
import 'package:nc_photos/bloc_util.dart';
import 'package:nc_photos/controller/pref_controller.dart'; import 'package:nc_photos/controller/pref_controller.dart';
import 'package:nc_photos/exception_event.dart'; import 'package:nc_photos/exception_event.dart';
import 'package:nc_photos/exception_util.dart' as exception_util; import 'package:nc_photos/exception_util.dart' as exception_util;

View file

@ -1,7 +1,7 @@
part of '../photos_settings.dart'; part of '../photos_settings.dart';
@npLog @npLog
class _Bloc extends Bloc<_Event, _State> { class _Bloc extends Bloc<_Event, _State> with BlocLogger {
_Bloc({ _Bloc({
required this.prefController, required this.prefController,
required this.accountPrefController, required this.accountPrefController,
@ -15,6 +15,9 @@ class _Bloc extends Bloc<_Event, _State> {
on<_SetMemoriesRange>(_onSetMemoriesRange); on<_SetMemoriesRange>(_onSetMemoriesRange);
} }
@override
String get tag => _log.fullName;
Future<void> _onInit(_Init ev, Emitter<_State> emit) async { Future<void> _onInit(_Init ev, Emitter<_State> emit) async {
_log.info(ev); _log.info(ev);
await Future.wait([ await Future.wait([

View file

@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';
import 'package:nc_photos/app_localizations.dart'; import 'package:nc_photos/app_localizations.dart';
import 'package:nc_photos/bloc_util.dart';
import 'package:nc_photos/controller/account_controller.dart'; import 'package:nc_photos/controller/account_controller.dart';
import 'package:nc_photos/controller/account_pref_controller.dart'; import 'package:nc_photos/controller/account_pref_controller.dart';
import 'package:nc_photos/controller/pref_controller.dart'; import 'package:nc_photos/controller/pref_controller.dart';

View file

@ -7,7 +7,7 @@ class _Error {
} }
@npLog @npLog
class _Bloc extends Bloc<_Event, _State> { class _Bloc extends Bloc<_Event, _State> with BlocLogger {
_Bloc(DiContainer c) _Bloc(DiContainer c)
: assert(require(c)), : assert(require(c)),
_c = c, _c = c,
@ -23,6 +23,9 @@ class _Bloc extends Bloc<_Event, _State> {
static bool require(DiContainer c) => DiContainer.has(c, DiType.pref); static bool require(DiContainer c) => DiContainer.has(c, DiType.pref);
@override
String get tag => _log.fullName;
Stream<_Error> errorStream() => _errorStream.stream; Stream<_Error> errorStream() => _errorStream.stream;
Future<void> _onSetFollowSystemTheme( Future<void> _onSetFollowSystemTheme(

View file

@ -8,6 +8,7 @@ import 'package:flutter_colorpicker/flutter_colorpicker.dart';
import 'package:kiwi/kiwi.dart'; import 'package:kiwi/kiwi.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';
import 'package:nc_photos/app_localizations.dart'; import 'package:nc_photos/app_localizations.dart';
import 'package:nc_photos/bloc_util.dart';
import 'package:nc_photos/di_container.dart'; import 'package:nc_photos/di_container.dart';
import 'package:nc_photos/entity/pref.dart'; import 'package:nc_photos/entity/pref.dart';
import 'package:nc_photos/event/event.dart'; import 'package:nc_photos/event/event.dart';

View file

@ -9,6 +9,7 @@ import 'package:kiwi/kiwi.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';
import 'package:nc_photos/account.dart'; import 'package:nc_photos/account.dart';
import 'package:nc_photos/app_localizations.dart'; import 'package:nc_photos/app_localizations.dart';
import 'package:nc_photos/bloc_util.dart';
import 'package:nc_photos/controller/account_controller.dart'; import 'package:nc_photos/controller/account_controller.dart';
import 'package:nc_photos/controller/collections_controller.dart'; import 'package:nc_photos/controller/collections_controller.dart';
import 'package:nc_photos/di_container.dart'; import 'package:nc_photos/di_container.dart';

View file

@ -1,7 +1,7 @@
part of '../share_collection_dialog.dart'; part of '../share_collection_dialog.dart';
@npLog @npLog
class _Bloc extends Bloc<_Event, _State> { class _Bloc extends Bloc<_Event, _State> with BlocLogger {
_Bloc({ _Bloc({
required DiContainer container, required DiContainer container,
required this.account, required this.account,
@ -41,6 +41,9 @@ class _Bloc extends Bloc<_Event, _State> {
); );
} }
@override
String get tag => _log.fullName;
@override @override
Future<void> close() { Future<void> close() {
_collectionControllerSubscription?.cancel(); _collectionControllerSubscription?.cancel();