in src/Elastic.OpenTelemetry.Core/ElasticOpenTelemetryComponents.cs [12:38]
internal sealed class ElasticOpenTelemetryComponents(
CompositeLogger logger,
LoggingEventListener loggingEventListener,
CompositeElasticOpenTelemetryOptions options) : IDisposable, IAsyncDisposable
{
public CompositeLogger Logger { get; } = logger;
public LoggingEventListener LoggingEventListener { get; } = loggingEventListener;
public CompositeElasticOpenTelemetryOptions Options { get; } = options;
internal void SetAdditionalLogger(ILogger logger, SdkActivationMethod activationMethod)
{
if (logger is not NullLogger)
Logger.SetAdditionalLogger(logger, activationMethod, this);
}
public void Dispose()
{
Logger.Dispose();
LoggingEventListener.Dispose();
}
public async ValueTask DisposeAsync()
{
await Logger.DisposeAsync().ConfigureAwait(false);
await LoggingEventListener.DisposeAsync().ConfigureAwait(false);
}
}