From 566575fcb9f690138dfc891717d8b054dbd13f14 Mon Sep 17 00:00:00 2001 From: dab246 Date: Mon, 28 Aug 2023 18:51:49 +0700 Subject: [PATCH] Make the beautify logging tool (cherry picked from commit 3322703de81c2c53f45b25743071769f8bdabb55) --- core/lib/utils/app_logger.dart | 45 ++++++++++++++++--- lib/features/base/base_controller.dart | 4 +- .../config/authorization_interceptors.dart | 4 +- 3 files changed, 42 insertions(+), 11 deletions(-) diff --git a/core/lib/utils/app_logger.dart b/core/lib/utils/app_logger.dart index 860ecb973..ca1e96155 100644 --- a/core/lib/utils/app_logger.dart +++ b/core/lib/utils/app_logger.dart @@ -3,17 +3,38 @@ import 'dart:async'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -final logHistory = _Dispatcher(""); +final logHistory = _Dispatcher(''); -void log(String? value) { - if (kDebugMode) { - String v = value ?? ""; - logHistory.value = "$v\n${logHistory.value}"; - print(v); +void log(String? value, {Level level = Level.info}) { + if (!kDebugMode) return; + + String logsStr = value ?? ''; + logHistory.value = '$logsStr\n${logHistory.value}'; + + switch (level) { + case Level.wtf: + logsStr = '\x1B[31m!!!CRITICAL!!! $logsStr\x1B[0m'; + break; + case Level.error: + logsStr = '\x1B[31m$logsStr\x1B[0m'; + break; + case Level.warning: + logsStr = '\x1B[33m$logsStr\x1B[0m'; + break; + case Level.info: + logsStr = '\x1B[32m$logsStr\x1B[0m'; + break; + case Level.debug: + logsStr = '\x1B[34m$logsStr\x1B[0m'; + break; + case Level.verbose: + break; } + // ignore: avoid_print + print('[TeamMail] $logsStr'); } -void logError(String? value) => log("[ERROR] ${value ?? ""}"); +void logError(String? value) => log(value, level: Level.error); // Take from: https://flutter.dev/docs/testing/errors void initLogger(VoidCallback runApp) { @@ -31,4 +52,14 @@ void initLogger(VoidCallback runApp) { class _Dispatcher extends ValueNotifier { _Dispatcher(String value) : super(value); +} + + +enum Level { + wtf, + error, + warning, + info, + debug, + verbose, } \ No newline at end of file diff --git a/lib/features/base/base_controller.dart b/lib/features/base/base_controller.dart index d4aef2fb7..d0ab5565f 100644 --- a/lib/features/base/base_controller.dart +++ b/lib/features/base/base_controller.dart @@ -171,7 +171,7 @@ abstract class BaseController extends GetxController } void handleFailureViewState(Failure failure) { - logError('BaseController::handleFailureViewState(): $failure'); + logError('BaseController::handleFailureViewState(): ${failure.runtimeType}'); if (failure is LogoutOidcFailure) { if (_isFcmEnabled) { _getSubscriptionLocalAction(); @@ -186,7 +186,7 @@ abstract class BaseController extends GetxController } void handleSuccessViewState(Success success) { - log('BaseController::handleSuccessViewState(): $success'); + log('BaseController::handleSuccessViewState(): ${success.runtimeType}'); if (success is LogoutOidcSuccess) { if (_isFcmEnabled) { _getSubscriptionLocalAction(); diff --git a/lib/features/login/data/network/config/authorization_interceptors.dart b/lib/features/login/data/network/config/authorization_interceptors.dart index e92355f43..d01692347 100644 --- a/lib/features/login/data/network/config/authorization_interceptors.dart +++ b/lib/features/login/data/network/config/authorization_interceptors.dart @@ -73,7 +73,7 @@ class AuthorizationInterceptors extends QueuedInterceptorsWrapper { @override void onError(DioError err, ErrorInterceptorHandler handler) async { - log('AuthorizationInterceptors::onError():dioType: ${err.type} | statusCode: ${err.response?.statusCode} | message: ${err.message} | statusMessage: ${err.response?.statusMessage}'); + logError('AuthorizationInterceptors::onError():dioType: ${err.type} | statusCode: ${err.response?.statusCode} | message: ${err.message} | statusMessage: ${err.response?.statusMessage}'); try { if (_validateToRefreshToken(err)) { log('AuthorizationInterceptors::onError:RefreshTokenCalled:configOIDC: $_configOIDC | refreshTokenCurrent: ${_token?.refreshToken}'); @@ -114,7 +114,7 @@ class AuthorizationInterceptors extends QueuedInterceptorsWrapper { super.onError(err, handler); } } catch (e) { - log('AuthorizationInterceptors::onError():Exception: $e'); + logError('AuthorizationInterceptors::onError():Exception: $e'); super.onError(err, handler); } }