flutter-freaccess-hub/lib/shared/utils/log_util.dart

40 lines
1.2 KiB
Dart

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);
}
});
}
}