40 lines
1.2 KiB
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);
|
|
}
|
|
});
|
|
}
|
|
}
|