logEvent method

  1. @override
Future<void> logEvent({
  1. required AnalyticsEvent e,
})
override

Implementation

@override
Future<void> logEvent({required AnalyticsEvent e}) async {
  if (!isReady) {
    logger.warning(this, '$providerName: Sentry Analytics is not ready');
    return;
  }

  if (!isAnalyticsEnabled) {
    logger.debug(
      this,
      '$providerName: Analytics is disabled, event will not be logged',
    );
    return;
  }

  logger.debug(
    this,
    '$providerName: Logging event: ${e.name} and parameters: ${e.parameters}',
  );

  await Sentry.addBreadcrumb(
    Breadcrumb(
      message: e.name,
      category: 'analytics',
      level: SentryLevel.info,
      timestamp: DateTime.now(),
      data:
          e.parameters?.map((key, value) => MapEntry(key, value.toString())),
    ),
  );

  logger.debug(
    this,
    '$providerName: Event logged successfully',
  );
}