Flutter log viewer
Reading logs from flutter run or the device console works until the output scrolls past, or until a tester finds the bug on their own phone. xRay collects your Flutter app’s logs in a desktop app, live, with their level, logger, error and stack trace, and keeps them next to the network calls they belong to.
Structured logs, not lines of text
final logInspector = XRayLogInspector();
logInspector.info('User signed in', logger: 'AuthRepository');
logInspector.error('Failed to load data', error: error, stackTrace: stackTrace);
Each entry keeps its level (verbose, debug, info, warning, error, fatal or success), the logger that wrote it, and the error and stack trace when there is one. Already have a logger in your app? Route it through the inspector, as the log inspection guide shows.
Search and filter
- Search messages as you type.
- Filter by level, logger, time range, or entries with an error or stack trace.
- Save a filter as a preset, or use Errors & warnings and Last 5 minutes.
- Expand an entry to read its full error and stack trace.
Logs on the same timeline as your network calls
Logs, network calls and storage changes share one timeline. When a screen breaks, you see the warning, the failed request before it and the value it wrote after it, in order.
Logs from a tester’s phone
xRay connects to the app over your local network, so a tester can read the logs of the build on their own phone, without a cable or an IDE. Export the session as a .xray file and attach it to the ticket: the developer opens it in xRay and reads the same logs.
Safe by default
The log inspector only runs in debug builds. Connections are encrypted and need a pairing code, a team password or a trusted desktop.
Try xRay
xRay runs on macOS, Windows and Linux and is free during the alpha. It needs an impaktfull account with approved alpha access.