Skip to content

Commit 58f2392

Browse files
committed
#353: added central logger
1 parent 80894c6 commit 58f2392

30 files changed

+347
-278
lines changed

lib/di/db/setup_drift_io.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import 'package:drift/drift.dart';
55
import 'package:drift/isolate.dart';
66
import 'package:drift/native.dart';
77
import 'package:flutter_template/util/env/flavor_config.dart';
8-
import 'package:icapps_architecture/icapps_architecture.dart';
8+
import 'package:flutter_template/util/logging/flutter_template_logger.dart';
99
import 'package:path/path.dart';
1010
import 'package:path_provider/path_provider.dart';
1111

@@ -17,7 +17,7 @@ Future<DatabaseConnection> createDriftDatabaseConnection(String name) async {
1717
final file = File(join(dbFolder.path, '$name.sqlite'));
1818
if ((FlavorConfig.isDev() || FlavorConfig.isDummy()) && file.existsSync()) {
1919
file.deleteSync();
20-
staticLogger.debug('Databasefile `db.sqlite` is deleted');
20+
FlutterTemplateLogger.logDebug('Databasefile `db.sqlite` is deleted');
2121
}
2222
final receivePort = ReceivePort();
2323

lib/di/db/setup_drift_web.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import 'package:drift/drift.dart';
22
import 'package:drift/wasm.dart';
3-
import 'package:icapps_architecture/icapps_architecture.dart';
3+
import 'package:flutter_template/util/logging/flutter_template_logger.dart';
44

55
// If you want to use web workers, see https://drift.simonbinder.eu/web/
66
Future<DatabaseConnection> createDriftDatabaseConnection(String name) async {
@@ -11,7 +11,7 @@ Future<DatabaseConnection> createDriftDatabaseConnection(String name) async {
1111
);
1212

1313
if (executor.missingFeatures.isNotEmpty) {
14-
staticLogger.d('Using ${executor.chosenImplementation} due to missing browser features: ${executor.missingFeatures}');
14+
FlutterTemplateLogger.logDebug('Using ${executor.chosenImplementation} due to missing browser features: ${executor.missingFeatures}');
1515
}
1616

1717
return DatabaseConnection(executor.resolvedExecutor);

lib/di/injectable.config.dart

+139-136
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/di/injectable.dart

+4
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import 'dart:convert';
33
import 'package:dio/dio.dart';
44
import 'package:drift/drift.dart';
55
import 'package:firebase_analytics/firebase_analytics.dart';
6+
import 'package:firebase_crashlytics/firebase_crashlytics.dart';
67
import 'package:firebase_remote_config/firebase_remote_config.dart';
78
import 'package:flutter/foundation.dart';
89
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
@@ -62,6 +63,9 @@ abstract class RegisterModule {
6263
@lazySingleton
6364
FirebaseAnalytics provideFirebaseAnalytics() => FirebaseAnalytics.instance;
6465

66+
@lazySingleton
67+
FirebaseCrashlytics provideFirebaseCrashlytics() => FirebaseCrashlytics.instance;
68+
6569
@lazySingleton
6670
FlutterSecureStorage storage() => const FlutterSecureStorage();
6771

lib/main_common.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import 'package:firebase_crashlytics/firebase_crashlytics.dart';
55
import 'package:flutter/foundation.dart';
66
import 'package:flutter/material.dart';
77
import 'package:flutter_template/architecture.dart';
8+
import 'package:flutter_template/util/logging/flutter_template_logger.dart';
89
import 'package:flutter_template/util/web/app_configurator.dart' if (dart.library.html) 'package:flutter_template/util/web/app_configurator_web.dart';
9-
import 'package:icapps_architecture/icapps_architecture.dart';
1010

1111
Future<void> _setupCrashLogging() async {
1212
await Firebase.initializeApp();
@@ -27,7 +27,7 @@ FutureOr<R>? wrapMain<R>(FutureOr<R> Function() appCode) async {
2727
} catch (_) {}
2828

2929
try {
30-
staticLogger.e('Uncaught platform error', error: error, stackTrace: trace);
30+
FlutterTemplateLogger.logError('Uncaught platform error', error: error, stackTrace: trace);
3131
} catch (_) {
3232
// ignore: avoid_print
3333
print(error);

lib/navigator/main_navigator.navigator.dart

+16-16
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/repository/login/login_repository.dart

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import 'package:flutter_template/repository/secure_storage/auth/auth_storage.dart';
2-
import 'package:icapps_architecture/icapps_architecture.dart';
2+
import 'package:flutter_template/util/logging/flutter_template_logger.dart';
33
import 'package:injectable/injectable.dart';
44

55
@lazySingleton
@@ -22,11 +22,11 @@ class _LoginRepository implements LoginRepository {
2222
Future<bool> get isLoggedIn => _storage.hasLoggedInUser();
2323

2424
@override
25-
Future<bool> get isNotLoggedIn async=> !(await _storage.hasLoggedInUser());
25+
Future<bool> get isNotLoggedIn async => !(await _storage.hasLoggedInUser());
2626

2727
@override
2828
Future<void> login({required String email, required String password}) async {
2929
await _storage.saveUserCredentials(accessToken: 'test_access_token', refreshToken: 'test_refresh_token');
30-
logger.debug('Login should be implemented');
30+
FlutterTemplateLogger.logDebug('Login should be implemented');
3131
}
3232
}

lib/repository/refresh/refresh_repository.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import 'package:dio/dio.dart';
22
import 'package:flutter/foundation.dart';
33
import 'package:flutter_template/model/exceptions/un_authorized_error.dart';
44
import 'package:flutter_template/repository/secure_storage/auth/auth_storage.dart';
5-
import 'package:icapps_architecture/icapps_architecture.dart';
5+
import 'package:flutter_template/util/logging/flutter_template_logger.dart';
66
import 'package:injectable/injectable.dart';
77
import 'package:synchronized/synchronized.dart' as synchronized;
88

@@ -39,7 +39,7 @@ class _RefreshRepository implements RefreshRepository {
3939
await _lock.synchronized(() async {
4040
final newAccessToken = await _authStorage.getAccessToken();
4141
if (accessToken != newAccessToken) {
42-
logger.debug('ACCESS TOKEN was already renewed');
42+
FlutterTemplateLogger.logDebug('ACCESS TOKEN was already renewed');
4343
return;
4444
}
4545
if (_failure) {

lib/repository/remote_config/remote_config.dart

+2
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,7 @@ class RemoteConfig {
1414

1515
int get reviewBuild => _remoteConfig?.getOptionalInt('review_build') ?? 1;
1616

17+
bool get sendBlockedErrorsToFirebase => _remoteConfig?.getOptionalBool('send_blocked_errors_to_firebase') ?? false;
18+
1719
Map<String, LocalizedMessage> get overriddenTranslations => _remoteConfig?.getCustomObjectMap('overridden_translations', LocalizedMessage.fromJson) ?? {};
1820
}

lib/repository/remote_config/remote_config_repository.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import 'package:flutter_template/di/injectable.dart';
33
import 'package:flutter_template/repository/remote_config/base_remote_config_repository.dart';
44
import 'package:flutter_template/styles/theme_durations.dart';
55
import 'package:flutter_template/util/locale/localization_overrides.dart';
6-
import 'package:icapps_architecture/icapps_architecture.dart';
6+
import 'package:flutter_template/util/logging/flutter_template_logger.dart';
77
import 'package:injectable/injectable.dart';
88

99
@lazySingleton
@@ -24,7 +24,7 @@ class RemoteConfigRepository extends BaseRemoteConfigRepo {
2424
await _remoteConfig.fetchAndActivate();
2525
await getIt.get<LocalizationOverrides>().refreshOverrideLocalizations();
2626
} catch (error, trace) {
27-
logger.error('Unable to fetch remote config. Cached or default values will be used', error: error, stackTrace: trace);
27+
FlutterTemplateLogger.logError('Unable to fetch remote config. Cached or default values will be used', error: error, stackTrace: trace);
2828
}
2929
}
3030

lib/util/api/dummy_api_util.dart

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import 'dart:convert';
22

33
import 'package:flutter/services.dart';
44
import 'package:flutter_template/util/env/flavor_config.dart';
5-
import 'package:icapps_architecture/icapps_architecture.dart';
5+
import 'package:flutter_template/util/logging/flutter_template_logger.dart';
66

77
class DummyApiUtil {
88
static const _apiAssetPath = 'assets/api';
@@ -13,13 +13,13 @@ class DummyApiUtil {
1313
}
1414
final path = '$_apiAssetPath/$url.json';
1515
try {
16-
staticLogger.debug('---------------> GET - url: file://$path');
16+
FlutterTemplateLogger.logDebug('---------------> GET - url: file://$path');
1717

1818
final jsonString = await rootBundle.loadString(path);
19-
staticLogger.debug('<--------------- GET - url: file://$path - statucode: 200');
19+
FlutterTemplateLogger.logDebug('<--------------- GET - url: file://$path - statucode: 200');
2020
return json.decode(jsonString) as T;
2121
} catch (e, stack) {
22-
staticLogger.error(
22+
FlutterTemplateLogger.logError(
2323
'<--------------- GET - url: $path - statucode: 404',
2424
error: e,
2525
stackTrace: stack,

lib/util/inspector/local_storage_inspector.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import 'package:file_local_storage_inspector/file_local_storage_inspector.dart';
44
import 'package:flutter/foundation.dart';
55
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
66
import 'package:flutter_template/di/injectable.dart';
7-
import 'package:icapps_architecture/icapps_architecture.dart';
7+
import 'package:flutter_template/util/logging/flutter_template_logger.dart';
88
import 'package:path_provider/path_provider.dart';
99
import 'package:preferences_local_storage_inspector/preferences_local_storage_inspector.dart';
1010
import 'package:secure_storage_local_storage_inspector/secure_storage_local_storage_inspector.dart';
@@ -36,7 +36,7 @@ Future<void> _initLocalStorageInspector(
3636
await configureServers(driver);
3737

3838
const paused = bool.fromEnvironment('storage_inspector_wait');
39-
staticLogger.d('Starting local storage inspector. Waiting for unpause? $paused');
39+
FlutterTemplateLogger.logDebug('Starting local storage inspector. Waiting for unpause? $paused');
4040

4141
await driver.start(paused: paused);
4242
}

lib/util/inspector/niddler.dart

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import 'package:icapps_architecture/icapps_architecture.dart';
1+
import 'package:flutter_template/util/logging/flutter_template_logger.dart';
22
import 'package:niddler_dart/niddler_dart.dart';
33

44
Future<Niddler> initNiddler() async {
@@ -11,12 +11,12 @@ Future<Niddler> initNiddler() async {
1111
final niddler = niddlerBuilder.build();
1212

1313
const debugger = bool.fromEnvironment('niddler_wait');
14-
staticLogger.d('Starting niddler. Waiting for debugger? $debugger');
14+
FlutterTemplateLogger.logDebug('Starting niddler. Waiting for debugger? $debugger');
1515

1616
await niddler.start(waitForDebugger: debugger);
1717

1818
niddler.install();
19-
staticLogger.d('Niddler is running');
19+
FlutterTemplateLogger.logDebug('Niddler is running');
2020

2121
return niddler;
2222
}

lib/util/interceptor/network_error_interceptor.dart

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import 'package:flutter_template/model/exceptions/general_network_error.dart';
66
import 'package:flutter_template/model/exceptions/internal_server_error.dart';
77
import 'package:flutter_template/model/exceptions/no_internet_error.dart';
88
import 'package:flutter_template/model/exceptions/un_authorized_error.dart';
9+
import 'package:flutter_template/util/logging/flutter_template_logger.dart';
910
import 'package:icapps_architecture/icapps_architecture.dart';
1011
import 'package:injectable/injectable.dart';
1112

@@ -42,7 +43,7 @@ class NetworkErrorInterceptor extends SimpleInterceptor {
4243
return GeneralNetworkError(error);
4344
}
4445
} catch (e, stack) {
45-
logger.error('Failed to get correct error', error: e, stackTrace: stack);
46+
FlutterTemplateLogger.logError('Failed to get correct error', error: e, stackTrace: stack);
4647
return CodeError();
4748
}
4849
}

lib/util/interceptor/network_log_interceptor.dart

+6-5
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,35 @@ import 'dart:io';
22

33
import 'package:dio/dio.dart';
44
import 'package:flutter_template/model/exceptions/general_network_error.dart';
5+
import 'package:flutter_template/util/logging/flutter_template_logger.dart';
56
import 'package:icapps_architecture/icapps_architecture.dart';
67
import 'package:injectable/injectable.dart';
78

89
@singleton
910
class NetworkLogInterceptor extends SimpleInterceptor {
1011
@override
1112
Future<Object?> onRequest(RequestOptions options) async {
12-
logger.logNetworkRequest(options);
13+
FlutterTemplateLogger.logNetworkRequest(options);
1314
return super.onRequest(options);
1415
}
1516

1617
@override
1718
Future<Object?> onResponse(Response response) async {
18-
logger.logNetworkResponse(response);
19+
FlutterTemplateLogger.logNetworkResponse(response);
1920
return super.onResponse(response);
2021
}
2122

2223
@override
2324
Future<Object?> onError(DioException error) async {
2425
final response = error.response;
2526
if (response != null && response.statusCode == HttpStatus.notModified) {
26-
logger.logNetworkResponse(response);
27+
FlutterTemplateLogger.logNetworkResponse(response);
2728
return super.onError(error);
2829
}
2930
if (error is NetworkError) {
30-
logger.logNetworkError(error);
31+
FlutterTemplateLogger.logNetworkError(error);
3132
} else {
32-
logger.logNetworkError(GeneralNetworkError(error));
33+
FlutterTemplateLogger.logNetworkError(GeneralNetworkError(error));
3334
}
3435
return super.onError(error);
3536
}

lib/util/interceptor/network_refresh_interceptor.dart

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import 'package:flutter_template/di/injectable.dart';
33
import 'package:flutter_template/model/exceptions/un_authorized_error.dart';
44
import 'package:flutter_template/repository/refresh/refresh_repository.dart';
55
import 'package:flutter_template/repository/secure_storage/auth/auth_storage.dart';
6+
import 'package:flutter_template/util/logging/flutter_template_logger.dart';
67
import 'package:icapps_architecture/icapps_architecture.dart';
78
import 'package:injectable/injectable.dart';
89

@@ -32,15 +33,15 @@ class NetworkRefreshInterceptor extends SimpleInterceptor {
3233
Future<Object?> onError(DioException error) async {
3334
final request = error.requestOptions;
3435
if (_excludedPaths.contains(request.path)) {
35-
logger.debug('Network refresh interceptor should not intercept');
36+
FlutterTemplateLogger.logDebug('Network refresh interceptor should not intercept');
3637
return super.onError(error);
3738
}
3839

3940
if (error is! UnAuthorizedError) {
4041
return super.onError(error);
4142
}
4243

43-
logger.debug('Refreshing');
44+
FlutterTemplateLogger.logDebug('Refreshing');
4445
await _refreshRepo.refresh(error);
4546

4647
final authorizationHeader = '${AppConstants.protectedAuthenticationHeaderPrefix} ${await _authStorage.getAccessToken()}';

0 commit comments

Comments
 (0)