dev_log_viewer 0.2.2 copy "dev_log_viewer: ^0.2.2" to clipboard
dev_log_viewer: ^0.2.2 copied to clipboard

Real-time local log viewer for Flutter/Dart. Streams structured logs from your app to a searchable web UI on localhost.

Changelog #

0.2.2 #

  • Non-API log entries now display their structured body. Tags like PAYMENT, DEMO, or any custom tag that pass a body map to LogForwarder.send() now expand to show the full JSON — previously only the message text was visible and the body was silently discarded by the UI.
  • Copy button now works for API error entries. The Dio interceptor previously formatted error messages as GET url → 404 · ms, which the parser could not recognise, so copy only produced the raw message line with no response body or error text. Format changed to <-- 404 url · ms (consistent with successful responses) so copy now includes the response body and the Dio error message.

0.2.1 #

  • key:value search syntax — type isSettled:true in the search box to filter log entries by a specific JSON field and value. Works at any nesting depth, case-insensitive, and falls back to free-text search when the query doesn't match the key:value pattern.
  • Highlights the key and value terms separately in search results — previously the literal string "isSettled:true" was never present in pretty-printed JSON, so nothing was highlighted in kv-mode.
  • Real-time SSE streaming fixed — events now appear in the browser instantly without requiring a page reload. Root cause: dart:io's HttpResponse buffers output by default, and Shelf's pipeline never calls flush(). Fixed by bypassing Shelf for the /stream route and using the raw dart:io response with bufferOutput = false and an explicit flush() after every event.
  • SSE reconnect now reloads history to recover any entries missed during a disconnect — the existing ID-based dedup prevents double-rendering.

0.2.0 #

  • /ping now reports startedAt, used by the client's discovery logic to prefer the most recently started server when several are running for the same project.
  • Tag filter chips now have a working click handler for ALL — previously the static ALL button never had a listener attached, so the only way back to "show everything" was untoggling every other active tag by hand.
  • Tags with no dedicated colour (anything outside API/AUTH/NOTIF/NAV/ STORE/PAY/ERR*) get a deterministic colour from the existing accent palette, applied consistently to both the filter chip and the inline badge — previously they fell back to a flat grey with no active-state styling at all.
  • Sensitive JSON values (password, pin, token, authorization, access_token, refresh_token, client_secret, cvv) render masked by default in the body viewer; click to reveal. The Copy button always copies the real value regardless of the on-screen mask state.
  • Copy button now reconstructs a clean request/response summary for API entries (--> METHOD url / CODE <-- url, with the real JSON body) instead of just the bare arrow line with no body.

0.1.1 #

  • Documentation only — dartdoc comments added across the public API, no behavioural changes.

0.1.0 #

  • Initial release.
  • Shelf HTTP server with SSE live stream, log store, and built-in web UI.
  • Auto-increments port (8181–8190) when the default is already in use.
  • dev_log_viewer CLI: starts the server.
  • dev_log_setup CLI: one-command onboarding wizard for Flutter/Dart projects.
0
likes
160
points
52
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Real-time local log viewer for Flutter/Dart. Streams structured logs from your app to a searchable web UI on localhost.

Repository (GitHub)
View/report issues

Topics

#logging #debug #developer-tools #cli

License

MIT (license)

Dependencies

shelf, shelf_router

More

Packages that depend on dev_log_viewer