From a459fb7cca96c813e18b35b539da0b754b5a5484 Mon Sep 17 00:00:00 2001 From: Faiz Hashmi Date: Wed, 13 Aug 2025 11:40:49 +0300 Subject: [PATCH] updated logger_service.dart --- lib/constants/app_constants.dart | 2 +- lib/models/generic_response_model.dart | 5 +++++ lib/models/rss_feed_model.dart | 5 +++++ lib/models/weathers_widget_model.dart | 5 +++++ lib/repositories/screen_details_repo.dart | 7 +++++++ lib/services/logger_service.dart | 9 +++++---- 6 files changed, 28 insertions(+), 5 deletions(-) diff --git a/lib/constants/app_constants.dart b/lib/constants/app_constants.dart index 78d0e7c..18d3623 100644 --- a/lib/constants/app_constants.dart +++ b/lib/constants/app_constants.dart @@ -106,7 +106,7 @@ class AppConstants { static String testIP = '12.4.5.1'; // projectID.QlineType.ScreenType.AnyNumber (1 to 10) static int thresholdForListUI = 3; - static double currentBuildVersion = 8.5; + static double currentBuildVersion = 8.6; static double clearLogsHoursThreshold = 48; } diff --git a/lib/models/generic_response_model.dart b/lib/models/generic_response_model.dart index 8169dc5..e6c1827 100644 --- a/lib/models/generic_response_model.dart +++ b/lib/models/generic_response_model.dart @@ -24,4 +24,9 @@ class GenericRespModel { message: json["message"], ); } + + @override + String toString() { + return 'GenericRespModel{data: $data, messageStatus: $messageStatus, totalItemsCount: $totalItemsCount, message: $message}'; + } } diff --git a/lib/models/rss_feed_model.dart b/lib/models/rss_feed_model.dart index a87284f..138e1ce 100644 --- a/lib/models/rss_feed_model.dart +++ b/lib/models/rss_feed_model.dart @@ -12,4 +12,9 @@ class RssFeedModel { data['rssFeed'] = rssFeed; return data; } + + @override + String toString() { + return 'RssFeedModel{rssFeed: $rssFeed}'; + } } diff --git a/lib/models/weathers_widget_model.dart b/lib/models/weathers_widget_model.dart index 117be41..312914f 100644 --- a/lib/models/weathers_widget_model.dart +++ b/lib/models/weathers_widget_model.dart @@ -62,4 +62,9 @@ class WeathersWidgetModel { return AppAssets.weatherIcon; } } + + @override + String toString() { + return 'WeathersWidgetModel{id: $id, headline: $headline, maxTemp: $maxTemp, minTemp: $minTemp, iconPhrase: $iconPhrase, forecastDate: $forecastDate, cityID: $cityID, forecastDay: $forecastDay, createDateTime: $createDateTime, windSpeed: $windSpeed, windDirection: $windDirection, windDegrees: $windDegrees, weatherIconPath: $weatherIconPath}'; + } } diff --git a/lib/repositories/screen_details_repo.dart b/lib/repositories/screen_details_repo.dart index f873fee..06f6de5 100644 --- a/lib/repositories/screen_details_repo.dart +++ b/lib/repositories/screen_details_repo.dart @@ -106,6 +106,8 @@ class ScreenDetailsRepoImp implements ScreenDetailsRepo { ); genericRespModel.data = KioskPatientTicket.fromJson(genericRespModel.data); + loggerService.logToFile(message: genericRespModel.toString(), source: "createTicketFromKiosk-> screen_details_repo.dart", type: LogTypeEnum.data); + return genericRespModel; } catch (e) { loggerService.logError(e.toString()); @@ -127,6 +129,8 @@ class ScreenDetailsRepoImp implements ScreenDetailsRepo { List weathersWidgetModel = List.generate(genericRespModel.data.length, (index) => WeathersWidgetModel.fromJson(genericRespModel.data[index])); if (weathersWidgetModel.isNotEmpty) { + loggerService.logToFile(message: weathersWidgetModel.toString(), source: "getWeatherDetailsByCity-> screen_details_repo.dart", type: LogTypeEnum.data); + return weathersWidgetModel.first; } return null; @@ -150,6 +154,7 @@ class ScreenDetailsRepoImp implements ScreenDetailsRepo { List prayersWidgetModel = List.generate(genericRespModel.data.length, (index) => PrayersWidgetModel.fromJson(genericRespModel.data[index])); if (prayersWidgetModel.isNotEmpty) { + loggerService.logToFile(message: prayersWidgetModel.toString(), source: "getPrayerDetailsByLatLong-> screen_details_repo.dart", type: LogTypeEnum.data); return prayersWidgetModel.first; } @@ -174,6 +179,8 @@ class ScreenDetailsRepoImp implements ScreenDetailsRepo { List rssFeedModel = List.generate(genericRespModel.data.length, (index) => RssFeedModel.fromJson(genericRespModel.data[index])); if (rssFeedModel.isNotEmpty) { + loggerService.logToFile(message: rssFeedModel.toString(), source: "getRssFeedDetailsByLanguageID-> screen_details_repo.dart", type: LogTypeEnum.data); + return rssFeedModel.first; } return null; diff --git a/lib/services/logger_service.dart b/lib/services/logger_service.dart index ac551f4..7792d6f 100644 --- a/lib/services/logger_service.dart +++ b/lib/services/logger_service.dart @@ -11,7 +11,6 @@ import 'package:path_provider/path_provider.dart'; abstract class LoggerService { Future logToFile({required String message, required LogTypeEnum type, required String source}); - void logError(String message); void logInfo(String message); @@ -25,6 +24,7 @@ class LoggerServiceImp implements LoggerService { @override Future logToFile({required String message, required LogTypeEnum type, required String source}) async { try { + ScreenConfigViewModel screenConfigViewModel = getIt.get(); final timestamp = DateFormat('yyyy-MM-dd hh:mm:ss a').format(DateTime.now()); final formattedMessage = "[$timestamp] [SOURCE: $source] ${type.name.toUpperCase()}: $message"; @@ -38,9 +38,8 @@ class LoggerServiceImp implements LoggerService { ? AppStrings.errorLogsFileName : AppStrings.dataLogsFileName; - final file = File('${logDir.path}/$logFileName'); + final file = File('${logDir.path}/${screenConfigViewModel.currentScreenIP}_$logFileName'); - ScreenConfigViewModel screenConfigViewModel = getIt.get(); CacheService cacheService = getIt.get(); final lastLogsClearedAt = screenConfigViewModel.lastTimeLogsCleared; @@ -48,11 +47,13 @@ class LoggerServiceImp implements LoggerService { if (lastLogsClearedAt != null && now.difference(lastLogsClearedAt).inHours >= AppConstants.clearLogsHoursThreshold) { - await file.writeAsString(''); + final clearingMessage = "[$timestamp] [SOURCE: $source] ${type.name.toUpperCase()}: LOGS HAVE BEEN CLEARED"; + await file.writeAsString(clearingMessage); screenConfigViewModel.lastTimeLogsCleared = now; cacheService.setLastTimeLogsCleared(lastTimeCleared: now.millisecondsSinceEpoch); } await file.writeAsString("$formattedMessage\n", mode: FileMode.append); + } catch (e) { logger.e('Logging failed: $e'); }