console_plus 1.1.1 copy "console_plus: ^1.1.1" to clipboard
console_plus: ^1.1.1 copied to clipboard

A Flutter plugin that provides an elegant in-app developer console with floating button.

ConsolePlus #

Console+ Logo

A floating in-app console for Flutter — view, filter, search & export logs while your app runs! console_plus provides a non-intrusive floating console for Flutter apps, designed to debug logs directly on-device.

It helps developers:

  • View runtime logs above the app UI
  • Debug production issues without connecting to IDE
  • Filter and export logs instantly
  • Use it in QA or beta builds for field debugging

Features #

✅ Floating draggable console overlay
✅ Logs display above your app’s UI (non-blocking)
✅ Supports multi-line text selection
Auto-scroll when near the bottom
Filter logs by type (INFO, WARNING, ERROR)
Keyword search for tags or text
Horizontal scrolling for long lines
Copy, clear, and export logs as JSON
✅ Built-in floating bug icon to toggle visibility


Installation #

Add to your project's pubspec.yaml:

dependencies:
  console_plus: ^1.0.0

Then fetch packages:

flutter pub get

Import it:

import 'package:console_plus/console_plus.dart';

💻 Usage #

Step 1 — Show Floating Debug Button #

FloatingDebugButton.show(context);

This shows a draggable 🐞 button that opens the console overlay.


Step 2 — Log Messages #

Use:

DebugLogConsole.log("User logged in successfully");
DebugLogConsole.log("Missing field: email", type: LogType.warning);
DebugLogConsole.log("API request failed", type: LogType.error);

Or replace all print() calls in your app with:

DebugLogConsole.customLog("Something happened");

Step 3 — Export Logs #

Tap the ⬇️ Download icon in the console header to export as a .json file. You can also programmatically call:

final json = await DebugLogConsole.exportLogs(asJson: true);

🎛️ Console UI #

  • Draggable & resizable window
  • Search bar to filter logs
  • Dropdown filter for log levels
  • Copy, export, and clear actions
  • Persistent scroll and multi-line selection

🧩 Example #

void main() {
  runApp(const MyApp());
  WidgetsBinding.instance.addPostFrameCallback((_) {
    FloatingDebugButton.show(context);
    DebugLogConsole.log("App started");
  });
}

📂 File Export #

Format: .json

Example output:

[
  {
    "timestamp": "2025-11-08T12:30:01.345Z",
    "type": "info",
    "message": "App started"
  },
  {
    "timestamp": "2025-11-08T12:31:14.123Z",
    "type": "error",
    "message": "Network timeout"
  }
]

Contributing #

PRs welcome. Keep debug-only behaviour intact. If you add native platform code, ensure release builds keep plugin inert unless explicitly enabled.


Floating Button Console Overlay Search Filter

📜 License #

MIT License © 2025 Ashish
See the full LICENSE file for details.


💬 Credits #

Built with ❤️ by Ashish Follow for updates and Flutter dev tips!