Production-ready real-time logging solution for Flutter applications with 400K+ logs/second throughput, offline support, and real-time dashboard.
// Just one line to start!
await FlutterLiveLogger.start();
- Zero-config initialization - Start logging with a single line of code
- Interactive setup wizard - GUI-based configuration generator
- VS Code snippets - Rapid development with code snippets
- WebSocket stability - Fixed critical concurrency bugs
- Flutter 3.24+ support - Full compatibility with latest Flutter
This monorepo contains two packages:
Core logging library with:
- π 400K+ logs/second throughput
- π Cross-platform support (iOS, Android, Web, Desktop)
- πΎ Multiple storage options (Memory, SQLite)
- π Multiple transport layers (Memory, File, HTTP)
- π± Automatic navigation tracking
- π Offline support with sync
Web dashboard for real-time monitoring:
- π Real-time log streaming via WebSocket
- π Performance analytics and metrics
- π Advanced filtering and search
- π± Responsive design
- π¨ Modern Flutter web UI
dependencies:
flutter_live_logger: ^0.3.0
dev_dependencies:
flutter_live_logger_dashboard: ^0.3.0 # Optional dashboard
import 'package:flutter_live_logger/flutter_live_logger.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// Start with zero configuration
await FlutterLiveLogger.start();
runApp(MyApp());
}
// Use anywhere in your app
FlutterLiveLogger.info('App started');
FlutterLiveLogger.error('Something went wrong', error: exception);
FlutterLiveLogger.event('user_login', {'user_id': userId});
// Track user journey
FlutterLiveLogger.event('product_viewed', {
'product_id': product.id,
'category': product.category,
'price': product.price,
});
// Monitor performance
final stopwatch = Stopwatch()..start();
await api.processPayment();
FlutterLiveLogger.info('Payment processed', data: {
'duration_ms': stopwatch.elapsedMilliseconds,
'amount': payment.amount,
});
try {
await riskyOperation();
} catch (error, stackTrace) {
FlutterLiveLogger.error(
'Operation failed',
error: error,
stackTrace: stackTrace,
data: {'user_id': currentUser.id},
);
}
// Development
await FlutterLiveLogger.startDevelopment();
// Production with custom transports
await FlutterLiveLogger.init(
config: LoggerConfig.production(
transports: [
HttpTransport(config: HttpTransportConfig(
endpoint: 'https://api.your-domain.com/logs',
apiKey: 'your-api-key',
)),
FileTransport(config: FileTransportConfig(
directory: '/logs',
compressRotatedFiles: true,
)),
],
),
);
MaterialApp(
navigatorObservers: [
FlutterLiveLoggerNavigatorObserver(
enableDurationTracking: true,
enableBreadcrumbs: true,
),
],
home: HomeScreen(),
);
Start the dashboard server:
import 'package:flutter_live_logger_dashboard/flutter_live_logger_dashboard.dart';
void main() async {
final server = DashboardServer();
await server.start(port: 8080);
print('Dashboard running at http://localhost:8080');
}
- β‘ 400,000+ logs/second throughput
- π < 50ms initialization time
- πΎ < 10MB memory footprint
- π Smart batching for efficiency
- π Offline support - Queue logs when offline
- π‘οΈ Error resilience - Graceful degradation
- π¦ Multiple transports - Fallback options
- π§ͺ 95%+ test coverage - Battle-tested
- π― Zero-config start - One line setup
- π Rich documentation - Comprehensive guides
- π οΈ VS Code snippets - Rapid development
- π Cross-platform - Write once, run everywhere
We welcome contributions! Please see our Contributing Guide for details.
# Clone the repository
git clone https://github.com/curogom/flutter_live_logger.git
cd flutter_live_logger
# Install dependencies
flutter pub get
# Run tests
flutter test
# Run example app
cd packages/flutter_live_logger/example
flutter run
This project is licensed under the MIT License - see the LICENSE file for details.
Special thanks to all contributors and the Flutter community for their support and feedback.
- π Report Issues
- π¬ Discussions
- π§ Email
Made with β€οΈ by curogom.dev