simple_logger_overlay 0.1.6 copy "simple_logger_overlay: ^0.1.6" to clipboard
simple_logger_overlay: ^0.1.6 copied to clipboard

A simple, Dart 3+ compatible Flutter logging plugin with an in-app draggable overlay, log levels, and Dio support

simple_logger_overlay Pub Version #

A lightweight, Dart 3-compatible Flutter logging package with a draggable in-app log viewer overlay β€” inspired by let_log, rebuilt for modern apps.
Built with πŸ’™ by Saumya Macwan.


✨ Features #

  • 🧠 Non-blocking: Log I/O runs in a background isolate
  • 🌈 Material 3 overlay, dark/light theme aware
  • πŸ“„ Pretty-printed JSON views for network logs
  • 🌐 Dio interceptor for network logging with status coloring
  • πŸ’¬ Integrates with BLoC, Riverpod, GetX, and logger
  • πŸ” Filter, sort, search logs
  • πŸ“€ Export logs as .json, or copy to clipboard
  • 🧾 Detailed log view on card tap
  • πŸš€ Shake-to-open overlay (debug-only)
  • 🐞 Draggable floating debug button
  • πŸ”Œ Optional: GoRouterObserver, AppLifecycleObserver
  • πŸ–₯️ Emoji + color-coded console logging (with toggle)
  • 🧰 Simple static API: SimpleLoggerOverlay.log(...)

πŸ“± Screenshots #

Image 1 Image 2 Image 1 Image 2 Image 1 Image 2 Image 2 Image 2

πŸš€ Getting Started #

import 'package:simple_logger_overlay/simple_logger_overlay.dart';

@override
Widget build(BuildContext context) {
  return FloatingActionButton(
    onPressed: () {
      SimpleLoggerOverlay.show(context);
    },
    child: const Icon(Icons.file_present),
  );
}

πŸͺ΅ Log from Anywhere #

Log directly with the static API:

SimpleLoggerOverlay.log("Something happened", level: LogLevel.info, tag: 'HomeScreen');

🧩 Integrations #

🧠 BLoC

import 'package:simple_logger_overlay/core/bloc_logger_observer.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  Bloc.observer = SimpleOverlayBlocObserverLogger();
}

🌱 Riverpod

import 'package:simple_logger_overlay/core/riverpod_logger.dart';

void main() {
  runApp(
    ProviderScope(
      observers: [SimpleOverlayLoggerRiverpodObserver()],
      child: const MyApp(),
    ),
  );
}

⚑ GetX

import 'package:simple_logger_overlay/core/getx_logger_patch.dart';

void main() {
  simpleOverlayGetXLogObserver();
}

🌐 Dio Interceptor

import 'package:dio/dio.dart';
import 'package:simple_logger_overlay/core/network_logger_interceptor.dart';

final dio = Dio()
  ..interceptors.add(SimpleOverlayNetworkLoggerInterceptor());

🧭 GoRouter

MaterialApp.router(
  routerDelegate: GoRouter(
    observers: [SimpleOverlayGoRouterObserver()],
    ...
  ).routerDelegate,
);

πŸ“± App Lifecycle

WidgetsBinding.instance.addObserver(SimpleOverlayAppLifecycleObserver());

🐞 Debug Floating Button #

Stack(
  children: [
    child!,
    const SimpleOverlayDraggableDebuggerFAB(navigatorKey: rootNavigatorKey),
  ],
);

πŸ’» Console Logging #

Logs are also printed in your terminal with emojis and color by default.

[2025-06-24T19:15:01.000Z] πŸ” [DEBUG] [LoginBloc] Event dispatched
[2025-06-24T19:15:02.000Z] πŸ”₯ [ERROR] [LoginBloc] Invalid password

Disable if needed:

SimpleOverlayLogStorageService.enableConsole = false;

πŸ“¦ Export Logs #

Use the export button in the top-right corner of the overlay to:

  • πŸ“€ Export logs as .json
  • πŸ“‹ Copy current log to clipboard

πŸ› οΈ License #

MIT Β© 2025 Saumya Macwan

2
likes
0
points
80
downloads

Publisher

verified publishersammacwan.in

Weekly Downloads

A simple, Dart 3+ compatible Flutter logging plugin with an in-app draggable overlay, log levels, and Dio support

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

dio, flutter, flutter_bloc, flutter_riverpod, get, go_router, intl, path_provider, shake, share_plus

More

Packages that depend on simple_logger_overlay