NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev
Privacy-safe structured logging for Flutter apps — centralized redaction, app.runtime-log.v1 events, Riverpod bindings, test fakes, and breadcrumbs.
Last release 1 months ago
08 Sep 2026
Ships fairly regularly
a new release about every 4 weeks
Nearly every release is documented
notes for 5 of 5 stable releases
Nothing withdrawn
no release was ever pulled
2 months old
5 releases · first in 2026
One column per month.
Fixed default credential and Authorization/Cookie header redaction for quoted JSON-style keys (including whitespace, case variants, and escaped quoted
app.runtime-log.v1 structured event contract, stable
eventName, one-line JSON framing, optional stage/action/status/duration,
correlation IDs, error codes, bounded JSON-safe attributes, and a published
JSON Schema.FakeAppLogger, and sinks. The default
redactor covers common credentials, Authorization/Cookie values, URL query
and fragment data, emails, and phone numbers.AppLogEventSink and appLogEventSinkProvider for sanitized event
capture without adding a remote logging implementation.SanitizingAppLogger for bounded brownfield adaptation of existing
custom logging backends.AppLoggerProviderObserver.include to filter every callback and
stopped serializing provider values.debugChunked to sanitize the complete input before splitting and
cap the number of chunks. Complete response or user payload logging is no
longer a supported use case.AppLogger call sites and AppLogSink.write source-compatible.
Built-in fakes and sinks now receive sanitized error/stack text, so callers
must not rely on original object identity. ConsoleAppLogger.maxMessageLength
is now restricted to the Schema range of 0–4096 characters.Changed the license for this and future versions from MIT to the Apache License 2.0 and added the package NOTICE file.
Breaking (pre-1.0): added AppLogLevel.trace and AppLogger.trace(...). Custom AppLogger implementations and exhaustive AppLogLevel switches must be upd
AppLogLevel.trace and AppLogger.trace(...).
Custom AppLogger implementations and exhaustive AppLogLevel switches
must be updated. Existing enum indexes also shift because trace is first.
The default minLevel: AppLogLevel.debug continues to filter trace output.AppLogScope and AppLogger.forOwner(this) to bind the owner's runtime
class name once and omit handwritten tags from subsequent calls.Breaking (pre-1.0): console backend is terminal-only via debugPrint. Removed dart:developer, package:logging, and the process-wide Logger.root subscri
debugPrint.
Removed dart:developer, package:logging, and the process-wide
Logger.root subscription.debugResetForTest and
debugIsHandlerRegisteredForTest (no longer needed without a global handler).enableConsoleOutput (defaults to kDebugMode) and optional
useAnsiColors (off by default).warn / error still forward to AppLogSink for breadcrumbs; sink failures
print a single diagnostic when console output is enabled, without duplicating
the exception text.enableConsoleOutput / minLevel control.Initial release: AppLogger abstraction, ConsoleAppLogger (truncation + debugChunked), FakeAppLogger, generated Riverpod providers, AppLogSink interfac
AppLogger abstraction, ConsoleAppLogger (truncation +
debugChunked), FakeAppLogger, generated Riverpod providers,
AppLogSink interface, and optional AppLoggerProviderObserver.Your coding agent can read these notes before it upgrades. Set up the MCP server →