Ejemplo n.º 1
0
        public static DirectLogSubmissionManager Create(
            DirectLogSubmissionManager?previous,
            ImmutableDirectLogSubmissionSettings settings,
            string serviceName,
            string env,
            string serviceVersion)
        {
            var formatter = new LogFormatter(settings, serviceName, env, serviceVersion);

            if (previous is not null)
            {
                // Only the formatter uses settings that are configurable in code.
                // If that ever changes, need to update the log-shipping integrations that
                // currently cache the sink/settings instances
                return(new DirectLogSubmissionManager(previous.Settings, previous.Sink, formatter));
            }

            if (!settings.IsEnabled)
            {
                return(new DirectLogSubmissionManager(settings, new NullDatadogSink(), formatter));
            }

            var apiFactory = LogsTransportStrategy.Get(settings);
            var logsApi    = new LogsApi(settings.ApiKey, apiFactory);

            return(new DirectLogSubmissionManager(settings, new DatadogSink(logsApi, formatter, settings.BatchingOptions), formatter));
        }
Ejemplo n.º 2
0
 public void Init()
 {
     instance = new LogsApi();
 }