ByteeStudio

Flutter Log Explorer

Diagnostic log analysis, real-time filtering, and stream inspector for Flutter

Kind
Developer Tools
Year
2024
Role
Creator & Lead Developer
Status
Live
flutter_log_explorerdiagnostic_pipe.log
VM Service connected
14:20:01info[AuthService]User authenticated via token refresh (24ms)
14:20:03info[RenderPipeline]Widget tree mounted in 12.4ms [60 FPS steady]
14:20:07warn[AssetCache]Image cache size approaching 85% budget threshold
14:20:11error[ApiClient]SocketTimeoutException: failed to reach gateway after 3000ms
14:20:14info[StateProvider]Updated sync state: 14 items committed to local SQLite
A working simulation of the Flutter Log Explorer workflow, built for this page.

The problem

Developers frequently lose critical exceptions inside wall-of-text debug consoles. Standard IDE consoles lack multi-dimensional filtering, persistent query bookmarks, and structured JSON payload viewers.

The approach

Constructed a low-overhead logging companion that parses incoming stdout streams and DevTools socket connections, displaying structured events with instant log-level badges, stack trace foldouts, and exportable incident reports.

How it is built

Flutter Desktop, Dart, DevTools Service Protocol, SQLite, WebSockets

  1. 01Buffered stream reader capable of ingesting 10,000+ log lines per second without UI stutter
  2. 02Virtual scroll list rendering only the visible viewport log rows
  3. 03Built-in JSON tree formatting and syntax highlighting for API request/response payloads
  4. 04Local indexed search using client-side inverted index for zero-latency queries

What it does

  • Live stream filtering by severity (Verbose, Debug, Info, Warning, Error, Fatal)
  • Regex and tag-based query bar with history persistence
  • Formatted JSON viewer with collapsible nodes and copy-payload buttons
  • Stack trace de-obfuscation and clickable file paths
  • Session export to JSON and NDJSON for team troubleshooting

Challenges and how we solved them

Preventing memory bloat during hours-long mobile app profiling sessions.

Implemented a sliding-window in-memory ring buffer with optional spillover to an encrypted local SQLite database for historical lookback.

Seamless integration with Flutter run and Dart VM Service protocol.

Built a plug-and-play Dart client package with automatic service extension registration.

Flutter Log Explorer is in active production and continuously maintained.