flush method
Flush all pending events to every configured sink.
Implementation
Future<void> flush() async {
if (_batch.isEmpty) return;
// Include any completed performance metrics as events.
_flushPerformanceMetrics();
final events = _batch.drain();
if (events.isEmpty) return;
final futures = <Future<bool>>[];
for (final sink in _config.sinks) {
futures.add(_sendWithErrorHandling(sink, events));
}
final results = await Future.wait(futures);
final successCount = results.where((r) => r).length;
if (successCount > 0) {
_totalFlushed += events.length;
} else if (_config.sinks.isNotEmpty) {
_totalDropped += events.length;
}
}