simple_logger_overlay 0.2.2
simple_logger_overlay: ^0.2.2 copied to clipboard
A simple, Dart 3+ compatible Flutter logging plugin with an in-app draggable overlay, log levels, and Dio support
Changelog #
0.2.2 #
- ๐ง Minor documentation update.
0.2.1 #
๐ Bug fixes #
- Riverpod 3.x compatibility โ
SimpleOverlayLoggerRiverpodObservermigrated toflutter_riverpod ^3.xAPI:- Class declared
base(required becauseProviderObserveris nowbase) didUpdateProvider/didDisposeProvidersignatures updated to acceptProviderObserverContextinstead ofProviderBase+ProviderContainer- Added
dart:asyncimport forunawaited; removed unusedmetaimport
- Class declared
๐ง Internal #
- Applied
dart formatacross all core services and data models (no logic changes) - Fixed unnecessary multi-underscore wildcard params (
__/___โ_) perunnecessary_underscoreslint rule
0.2.0 #
- ๐ Fix
OpenContainerdeactivated-context crash: pre-compute allTheme.ofvalues before any closure โ zeroTheme.ofcalls insideopenBuilderorclosedBuilder - ๐ง CI: pin Flutter version to
3.35.6in publish workflow for reproducible builds - ๐ง example: remove
build_verifydev dependency to resolvego_router_builder/analyzerversion conflict
โจ Material You Expressive UI #
- Container transform โ log card โ detail page uses
OpenContainer(fade, 450 ms) for a seamless surface expansion - M3 color system โ all hard-coded colors replaced with semantic tokens (
primaryContainer,errorContainer,surfaceContainerHighest, etc.); adapts automatically to light / dark - M3 easing โ list entry animations use emphasized-decelerate curve
Cubic(0.05, 0.7, 0.1, 1.0)at 350 ms - Shared-axis transition โ vertical slide for overlay open / close
- FAB spring snap โ spring physics on drag release; scale press feedback; pulse on new logs
๐จ Theming #
SimpleLoggerOverlayConfigโ new singleton withconfigure(seedColor:)API; overlay builds its ownThemeDataviaColorScheme.fromSeed; default seed: sage-mint0xFF52B788- Dynamic Color โ
configure(lightScheme:, darkScheme:, clearSchemes:)accepts a fullColorSchemefor Android 12+ wallpaper-derived colors - Typography โ Inter (UI text) + JetBrains Mono (JSON / code) via
google_fonts
๐ Network logs #
- HTML response bodies rendered inline via
flutter_html - Auto-detection: JSON (pretty-printed) ยท HTML (rendered) ยท plain text
- Per-field copy buttons on every section in the detail view
_bodyToString()in interceptor usesjsonEncodeto avoid Dart Map literal output
๐ Search & filter #
- M3
SearchBarwith inline filter + sort icon buttons - Filter sheet โ level (Debug / Info / Error) and network status (Success / Error)
- Sort always applied (newest / oldest first) regardless of filter state
๐ Localization #
SimpleOverlayLocalizationsdelegate โ overlay picks up host app localeshouldReloadfixed totrueso strings update when locale changes
๐ Bug fixes #
OpenContainerdeactivated-context crash: pre-compute allTheme.ofvalues before any closure; zeroTheme.ofcalls insideopenBuilderorclosedBuilderLateInitializationErroron second FAB drag: animation fields made nullable; listener de-registered before re-addFormatExceptionon JSONL read: per-linetry/catchskips malformed / partial lines- Sort not applying without active filter: unified display getters always apply both filter and sort
0.1.9 #
- go_router causing issue on version
15.3.2, retracted to15.1.3
0.1.8 #
- โณ๏ธ Adjusted
intlpackage version to>=0.19.0 <0.21.0, for backward compatibility
0.1.7 #
- ๐ The
formatTimestampForUTCfunction has been updated to correctly convert the inputDateTimeto UTC before formatting. This ensures that the output string accurately represents the timestamp in UTC, as intended.
0.1.6 #
-
๐ง Minor name refactorings for classes for uniformity.
-
๐ Added navigator support to shake controller for better accessibility
0.1.5 #
- ๐จ Code style improvements:
- Applied
dart format .to ensure consistent code formatting across the codebase
- Applied
0.1.4 #
-
โณ๏ธ Added pretty terminal logging with ANSI colors + emoji:
- ๐ DEBUG, โน๏ธ INFO, ๐ก WARN, ๐ฅ ERROR
- Implemented via internal
printStyled(...)formatter
-
โ๏ธ Introduced global console logging toggle:
LogStorageService.enableConsole = false;
-
๐ง Refactored
LogStorageServiceto singleton pattern for optimized reuse -
โ Added developer-friendly static logging API:
SimpleLoggerOverlay.log('Something happened', level: LogLevel.info); -
๐ Added navigation + app lifecycle observers:
-
SimpleOverlayGoRouterObserver
-
SimpleOverlayAppLifecycleObserver
-
-
๐ Added DraggableDebuggerFAB:
-
Floating debug-only access point to the overlay
-
Can be placed via Stack() and moved around freely
-
0.1.3 #
0.1.2 #
โก Performance & Stability #
- โ
Isolate-based logging: Moved all file read/write/purge operations to background isolates
- Prevents UI lag during high-frequency logging
- Main thread stays unblocked
- โ
Safe platform channel usage:
- All
path_providercalls now run on the main isolate - Eliminated
BackgroundIsolateBinaryMessengercrash
- All
๐งผ Log Management #
- ๐งน Auto-purges logs older than 2 days using isolates
- ๐งพ Pretty-printed JSON body in network log detail page
๐จ UI Improvements #
- ๐ Replaced log level text (DEBUG / INFO / ERROR) with intuitive icons
- ๐ Debug โ
bug_report - โน๏ธ Info โ
info_outline - โ Error โ
error_outline
- ๐ Debug โ
0.1.1 #
- ๐ง Major performance enhancements:
- All log read/write/purge now happens in isolates to prevent UI jank
- Log overlay is now safe for high-frequency logging in production-grade apps
- ๐ฏ UI update:
- Replaced log level text (DEBUG, INFO, ERROR) with intuitive icons
- ๐งพ Log detail page now pretty-prints JSON request/response bodies
- ๐ Auto-purge logs older than 2 days in background
0.1.0 #
- Initial release of
simple_logger_overlay - ๐ Material 3 overlay for logs and network traffic
- ๐ Shake-to-open debug tool
- ๐ Filter, sort, search support
- ๐ฆ Integration with:
loggerpackage- BLoC (
BlocObserver) - Riverpod (
ProviderObserver) - GetX (via
Get.config)
- ๐ Dio interceptor for capturing network logs
- ๐งพ Log detail views
- ๐ค Export logs as JSON via
share_plus
1.0.0 #
- Initial release
- LoggerCore for log levels
- LoggerOverlay for UI
- Dio interceptor support