initialize method

Future<void> initialize(
  1. DatadogConfiguration configuration,
  2. TrackingConsent trackingConsent
)

Initialize the DatadogSdk with the provided configuration.

Implementation

Future<void> initialize(
  DatadogConfiguration configuration,
  TrackingConsent trackingConsent,
) async {
  // First set our SDK verbosity. We can assume WidgetsFlutterBinding has been initialized at this point
  await _platform.setSdkVerbosity(internalLogger.sdkVerbosity);

  configuration.additionalConfig[DatadogConfigKey.source] = 'flutter';
  configuration.additionalConfig[DatadogConfigKey.sdkVersion] = sdkVersion;

  _setFirstPartyHosts(configuration.firstPartyHostsWithTracingHeaders);

  // Logs are not supported by the FlashCat platform. Clear the
  // configuration before it reaches the native SDKs so logging is never
  // enabled on any platform.
  if (configuration.loggingConfiguration != null) {
    internalLogger.warn(
      'Logs are not supported by the FlashCat platform.'
      ' The provided loggingConfiguration will be ignored and no logs will be sent.',
    );
    configuration.loggingConfiguration = null;
  }

  await _platform.initialize(
    configuration,
    trackingConsent,
    logCallback: _platformLog,
    internalLogger: internalLogger,
  );

  if (configuration.rumConfiguration != null) {
    _rum = await DatadogRum.enable(this, configuration.rumConfiguration!);
  }

  _initializePlugins(configuration.additionalPlugins);
  _initialized = true;
}