setupFlutterErrorTracking method
void
setupFlutterErrorTracking()
Installs global Flutter error handlers that forward all uncaught errors
to logger.
Call this once in main() after WidgetsFlutterBinding.ensureInitialized():
void main() {
WidgetsFlutterBinding.ensureInitialized();
MyService().setupFlutterErrorTracking();
runApp(const MyApp());
}
Hooks installed:
- FlutterError.onError — Flutter framework / widget build errors.
PlatformDispatcher.instance.onError— uncaught Dart async errors.
Any previously installed handler is preserved and called first.
Implementation
void setupFlutterErrorTracking() {
final prevFlutter = FlutterError.onError;
FlutterError.onError = (FlutterErrorDetails details) {
prevFlutter?.call(details);
logger.log(
LogLevel.error,
details.exceptionAsString(),
error: details.exception,
stackTrace: details.stack,
context: trackerContext,
);
};
PlatformDispatcher.instance.onError = (Object error, StackTrace stack) {
logger.log(
LogLevel.fatal,
error.toString(),
error: error,
stackTrace: stack,
context: trackerContext,
);
return false;
};
}