import 'dart:developer'; import 'package:firebase_crashlytics/firebase_crashlytics.dart'; import 'package:flutter/foundation.dart'; import 'package:hub/backend/api_requests/api_calls.dart'; import 'package:logging/logging.dart'; class LogUtil { static void requestAPIFailed(String url, String body, String reason, dynamic error, StackTrace stack) async { final fullUrl = "${PhpGroup.getBaseUrl()}/$url"; log("URL: $fullUrl"); log("Body: $body"); log("Reason: $reason"); log("Error: ${error.toString()}"); log("Stack: ${stack.toString()}"); FirebaseCrashlytics.instance.setCustomKey('URL', fullUrl); FirebaseCrashlytics.instance.setCustomKey('Body', body); await FirebaseCrashlytics.instance.recordError(error, stack, reason: reason); } static void setupLogging() { Logger.root.level = Level.ALL; Logger.root.onRecord.listen((record) { final logMessage = '${record.level.name}: ${record.time}: ${record.message}'; if (kReleaseMode) { log( logMessage, name: record.loggerName, error: record.error, stackTrace: record.stackTrace, ); } else { print(logMessage); } }); } }