tracex 1.2.0  tracex: ^1.2.0 copied to clipboard
tracex: ^1.2.0 copied to clipboard
Advanced In-App Debugging Console for Flutter Applications with Network Monitoring
TraceX #
Advanced In-App Debugging Console for Flutter Applications with Network Monitoring
Features #
- In-app console: Monitor your app inside your app
- Network inspector: Track API calls and responses with beautiful formatting
- Custom FAB: Use your own floating action button design
- Auto-stash: FAB automatically hides to screen edge after inactivity
- Search & filter: Find specific logs quickly
- Copy & export: Share debug logs with your team
- Pretty logging: Beautiful formatted console output
- Performance optimized: Lightweight and efficient
- Theme support: Adapts to your app's theme
Screenshots #
| Console | Network Logs | Custom FAB | 
|---|---|---|
|  |  |  | 
Getting Started #
Add to pubspec.yaml #
dependencies:
  tracex: ^1.2.0
Then run flutter pub get.
Usage #
Initialize #
Create a global TraceX instance:
final TraceX tracex = TraceX(
  // Pretty logger for beautiful console output
  logger: TraceXPrettyLogger(
    enabled: kDebugMode,
    compact: true,
    maxWidth: 100,
  ),
  
  // Custom floating action button
  customFab: (isOpen) => MyCustomFab(isOpen: isOpen),
  
  // Button size and edge margin
  buttonSize: 48.0,
  edgeMargin: 6.0,
  
  // Log buffer length
  logBufferLength: 2500,
);
Enable the debug console #
In debug mode
Attach the floating button to the widget tree:
@override
void initState() {
  super.initState();
  
  tracex.attach(
    context: context,
    visible: kDebugMode,
  );
}
Open console manually
tracex.openConsole(context);
Log network requests #
With Dio
dio.interceptors.add(TraceXDioInterceptor(tracex));
With other HTTP clients
// After your HTTP request:
tracex.network(
  request: NetworkRequestEntry(
    method: 'POST',
    url: endpoint,
    headers: headers,
    body: body,
  ),
  response: NetworkResponseEntry(
    statusCode: response.statusCode,
    headers: response.headers,
    body: response.body,
  ),
);
Log messages #
tracex.log('Hello World!');
Custom FAB Example #
class MyCustomFab extends StatelessWidget {
  final bool isOpen;
  const MyCustomFab({
    super.key,
    required this.isOpen,
  });
  @override
  Widget build(BuildContext context) {
    return DecoratedBox(
      decoration: BoxDecoration(
        gradient: LinearGradient(
          colors: isOpen
              ? [const Color(0xFFe74c3c), const Color(0xFFc0392b)]
              : [const Color(0xFF667eea), const Color(0xFF764ba2)],
          begin: Alignment.topLeft,
          end: Alignment.bottomRight,
        ),
        borderRadius: BorderRadius.circular(28),
        boxShadow: [
          BoxShadow(
            color: Colors.black.withAlpha(50),
            blurRadius: 8,
            offset: const Offset(0, 4),
          ),
        ],
      ),
      child: Icon(
        isOpen ? Icons.close_rounded : Icons.bug_report_rounded,
        color: Colors.white,
        size: 28,
      ),
    );
  }
}
Pretty Logger #
TraceX includes a beautiful pretty logger inspired by PrettyDioLogger:
final TraceX tracex = TraceX(
  prettyLogger: TraceXPrettyLogger(
    enabled: true,
    compact: true,
    maxWidth: 90,
    request: true,
    requestHeader: true,
    requestBody: true,
    responseHeader: true,
    responseBody: true,
  ),
);
Advanced Features #
Auto-stash FAB #
The FAB automatically stashes to the nearest screen edge after 3 seconds of inactivity and can be unstashed by tapping.
Search & Filter #
- Search through logs by text
- Filter by log type
- Clear search to show all logs
Theme Integration #
TraceX automatically adapts to your app's theme using Material 3 design principles.
Example #
See the complete example in the /example folder of this repository.
License #
MIT License - see LICENSE file.
Contributing #
Contributions are welcome! Please feel free to submit a Pull Request.
Support #
If you encounter any problems or have suggestions, please file an issue at the GitHub repository.
TraceX - Making Flutter debugging beautiful and efficient! 🚀