logEventAsync method

Future<void> logEventAsync(
  1. String eventName,
  2. LogEventMetadata metadata
)

Log an event (asynchronous).

Implementation

Future<void> logEventAsync(
  String eventName,
  LogEventMetadata metadata,
) async {
  final sampleResult = shouldSampleEvent(eventName, _samplingConfig);
  if (sampleResult != null && sampleResult == 0) return;

  final metadataWithRate = sampleResult != null && sampleResult > 0
      ? {...metadata, 'sample_rate': sampleResult}
      : metadata;

  if (_sink == null) {
    _eventQueue.add(
      _QueuedEvent(
        eventName: eventName,
        metadata: metadataWithRate,
        isAsync: true,
      ),
    );
    return;
  }

  await _sink!.logEventAsync(eventName, metadataWithRate);
}