public AppInsightsLogger( AppInsightsLoggerProvider provider, string categoryName = null) { _provider = provider; _transform = provider.PopulateLogTelemetry; _telemetryClient = provider.Client; _categoryName = categoryName ?? DefaultCategoryName; }
private void LoadConfiguration(ILogger logger) { // Populate Logging info to ITelemetry var populateTypeConfig = new AssemblyInfoConfig(); var populateTelemetrySection = _config.GetSection(AppInsightsLoggingConfig.ApplicationInsightsSection) .GetSection(AppInsightsLoggingConfig.PopulateTelemetry); foreach (var populateItem in populateTelemetrySection.GetChildren()) { populateItem.Bind(populateTypeConfig); } // Using Reflection, get the IPopulateTelemetry function var factoryType = Type.GetType(populateTypeConfig.ClassAssembly, throwOnError: true); PopulateLogTelemetry = Activator.CreateInstance(factoryType) as IPopulateTelemetry; // Read Logging Levels var levels = _config.GetSection(AppInsightsLoggingConfig.ApplicationInsightsSection)? .GetSection(LoggingSettingsConfig.LogLevelSection); var dictLogLevel = new Dictionary <string, LogLevel>(); LogLevel defaultLevel = LogLevel.Warning; if (levels != null) { foreach (var k in levels.GetChildren()) { LogLevel level; if (Enum.TryParse(k.Value, true, out level)) { dictLogLevel.Add(k.Key, level); } else { dictLogLevel.Add(k.Key, LogLevel.Warning); } } if (dictLogLevel.ContainsKey("Default")) { defaultLevel = dictLogLevel["Default"]; dictLogLevel.Remove("Default"); } } _levels = dictLogLevel.ToImmutableDictionary(); _defaultLevel = defaultLevel; }