Packages
Sixteen libraries you embed directly in your own Dart or Flutter app —
or, for structured_log_shelf, your Dart server — install one, import it,
and go. (For the self-hosted server and its
admin client, see the guides instead.)
| Package | What it is |
|---|---|
| structured_log | The core library — structured JSON logging with context binding, processors, and multi-sink output routing. Start here regardless of platform. |
| structured_log_flutter | A headless log-viewer core for Flutter: a bounded LogBuffer sink and a filterable LogViewerController. Build your own UI on top of it, or use one of the three skins below. |
| structured_log_material | A ready-to-use Material 3 in-app log viewer, built on structured_log_flutter. |
| structured_log_fluent | A ready-to-use Fluent UI (WinUI-style) in-app log viewer, built on structured_log_flutter. |
| structured_log_cupertino | A ready-to-use Cupertino (iOS-style) in-app log viewer, built on structured_log_flutter. |
| structured_log_remote_sync | A RemoteSyncLogOutput sink that ships log entries to a structured_log_server instance over HTTP — batching, retry with backoff, a bounded buffer. See the Developer Guide for the full ingestion walkthrough. |
| structured_log_bloc | A BlocObserver that logs every bloc’s and cubit’s lifecycle, events, state changes and errors as structured_log entries. Works with flutter_bloc as is. |
| structured_log_riverpod | A ProviderObserver that logs every Riverpod provider’s creation, updates, failures and removal as structured_log entries. Works with flutter_riverpod as is; Riverpod 3 only. |
| structured_log_dio | A dio interceptor that logs every request and its outcome, with the level following the status code and auth headers, cookies and token-like query parameters redacted. |
| structured_log_http_client | The same for package:http: a client that wraps any http.Client and logs every call it passes through. |
| structured_log_go_router | Logs every go_router navigation — location, route pattern, previous location — plus redirects and routing errors, with token-like query parameters redacted. |
| structured_log_auto_route | Logs every auto_route screen that is opened, closed or switched to — name, pattern, location — with token-like parameters redacted. |
| structured_log_cherrypick | A CherryPickObserver that logs what the cherrypick DI container does — scopes, modules, cycles, resolve errors — without ever printing an instance. |
| structured_log_drift | A drift QueryInterceptor that writes every query — SQL, duration, rows — plus batches, failures and transaction ends, flags slow queries and keeps argument values out by default. |
| structured_log_logging | A bridge that writes every package:logging record as a structured_log entry — message, logger, level by value, error and stack trace — so the logs of libraries that write through package:logging reach the same sinks as your own. |
| structured_log_shelf | A shelf middleware for a Dart server: one entry per request — method, path, status, duration — and a logger for each handler bound to the request’s request_id, returned in X-Request-Id. Bodies are never written. |
Looking for structured_log_http? It was renamed to
structured_log_remote_sync (HttpLogOutput → RemoteSyncLogOutput) and is
discontinued; its page explains the move.
Each package’s page below is its README verbatim: installation, a quick start, the full feature list, and an API reference table.