Files
workavia-mail-front/core/lib/utils/app_logger.dart
T
2023-03-10 21:10:36 +07:00

34 lines
867 B
Dart

import 'dart:async';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
final logHistory = _Dispatcher("");
void log(String? value) {
String v = value ?? "";
logHistory.value = "$v\n${logHistory.value}";
if (kDebugMode) {
print(v);
}
}
void logError(String? value) => log("[ERROR] ${value ?? ""}");
// Take from: https://flutter.dev/docs/testing/errors
void initLogger(VoidCallback runApp) {
runZonedGuarded(() async {
WidgetsFlutterBinding.ensureInitialized();
FlutterError.onError = (FlutterErrorDetails details) {
FlutterError.dumpErrorToConsole(details);
logError(details.stack.toString());
};
runApp.call();
}, (Object error, StackTrace stack) {
logError(stack.toString());
});
}
class _Dispatcher extends ValueNotifier<String> {
_Dispatcher(String value) : super(value);
}