| File: LoggerProviderConfigurationFactory.cs | Web Access |
| Project: src\runtime\src\libraries\Microsoft.Extensions.Logging.Configuration\src\Microsoft.Extensions.Logging.Configuration.csproj (Microsoft.Extensions.Logging.Configuration) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using System.Collections.Generic; using Microsoft.Extensions.Configuration; namespace Microsoft.Extensions.Logging.Configuration { internal sealed class LoggerProviderConfigurationFactory : ILoggerProviderConfigurationFactory { private readonly IEnumerable<LoggingConfiguration> _configurations; public LoggerProviderConfigurationFactory(IEnumerable<LoggingConfiguration> configurations) { _configurations = configurations; } public IConfiguration GetConfiguration(Type providerType) { ArgumentNullException.ThrowIfNull(providerType); string fullName = providerType.FullName!; string? alias = ProviderAliasUtilities.GetAlias(providerType); var configurationBuilder = new ConfigurationBuilder(); foreach (LoggingConfiguration configuration in _configurations) { IConfigurationSection sectionFromFullName = configuration.Configuration.GetSection(fullName); configurationBuilder.AddConfiguration(sectionFromFullName); if (!string.IsNullOrWhiteSpace(alias)) { IConfigurationSection sectionFromAlias = configuration.Configuration.GetSection(alias); configurationBuilder.AddConfiguration(sectionFromAlias); } } return configurationBuilder.Build(); } } }