Revere is a modular logging package for Dart/Flutter. Plug in only the transports you need — console, file, Firebase, notifications, and more — and get consistent log routing across mobile, desktop, and server with a single API.
Ideal if you want a logger that's ready to use in minutes, stays lean by including only the transports you need, and already covers the practical production scenarios — file rotation, Crashlytics, native platform logging, and more — without extra glue code.
- Flexibility & Extensibility
- Architecture allows easy addition and switching of any transport (output backend).
- Choose the optimal configuration for your use case.
- Consistent Multi-Platform Experience
- Provides a unified logging experience across Flutter apps, servers, Android/iOS native, and cloud integrations.
- Production-Oriented
- Focus on features truly needed in the field, such as log rotation, remote delivery, and failure notifications.
- Simple API & Easy Adoption
- Intuitive API design and modular structure allow you to adopt only what you need.
import 'package:revere/core.dart';
import 'package:file_transport/file_transport.dart';
final logger = Logger();
logger.addTransport(ConsoleTransport(level: LogLevel.info));
logger.addTransport(FileTransport('/var/log/app.log'));
await logger.info('Server started');
await logger.error('Something failed', error: e, stackTrace: st);For advanced usage — LoggerMixin, ErrorTrackerMixin, buffered transport, and per-transport config — see the revere package README.
- Multiple transports per logger (e.g. file + Firebase + console)
- Per-transport config (format, color, headers, etc.)
- Log level threshold per transport
- Fully asynchronous, awaitable logging
- Easy extension via abstract base class
See each package README for setup, configuration, and platform-specific notes.
Implement the Transport abstract class and add it via logger.addTransport().
Details and a worked example are in the revere package README.