<PackageReference Include="System.Configuration.ConfigurationManager" Version="9.0.0-preview.1.24080.9" />

TraceConfiguration

public static class TraceConfiguration
namespace System.Diagnostics { public static class TraceConfiguration { private static volatile bool s_registered; public static void Register() { if (!s_registered) { Trace.Refreshing += RefreshingConfiguration; Switch.Initializing += InitializingSwitch; TraceSource.Initializing += InitializingTraceSource; ConfigureTraceSettings(); s_registered = true; } } private static void RefreshingConfiguration(object sender, EventArgs e) { System.Diagnostics.DiagnosticsConfiguration.Refresh(); } private static void InitializingTraceSource(object sender, InitializingTraceSourceEventArgs e) { <>c__DisplayClass3_0 <>c__DisplayClass3_ = default(<>c__DisplayClass3_0); <>c__DisplayClass3_.traceSource = e.TraceSource; SourceElementsCollection sources = System.Diagnostics.DiagnosticsConfiguration.Sources; if (sources != null) { <>c__DisplayClass3_1 <>c__DisplayClass3_2 = default(<>c__DisplayClass3_1); <>c__DisplayClass3_2.sourceElement = sources[<>c__DisplayClass3_.traceSource.Name]; if (<>c__DisplayClass3_2.sourceElement != null) { e.WasInitialized = true; if (<InitializingTraceSource>g__HasSourceSwitchTypeChanged|3_1(ref <>c__DisplayClass3_, ref <>c__DisplayClass3_2)) { if (!string.IsNullOrEmpty(<>c__DisplayClass3_2.sourceElement.SwitchName)) <InitializingTraceSource>g__CreateSwitch|3_0(<>c__DisplayClass3_2.sourceElement.SwitchType, <>c__DisplayClass3_2.sourceElement.SwitchName, ref <>c__DisplayClass3_); else { <InitializingTraceSource>g__CreateSwitch|3_0(<>c__DisplayClass3_2.sourceElement.SwitchType, <>c__DisplayClass3_.traceSource.Name, ref <>c__DisplayClass3_); if (!string.IsNullOrEmpty(<>c__DisplayClass3_2.sourceElement.SwitchValue)) <>c__DisplayClass3_.traceSource.Switch.Level = (SourceLevels)Enum.Parse(typeof(SourceLevels), <>c__DisplayClass3_2.sourceElement.SwitchValue); } } else if (!string.IsNullOrEmpty(<>c__DisplayClass3_2.sourceElement.SwitchName)) { if (<>c__DisplayClass3_2.sourceElement.SwitchName != <>c__DisplayClass3_.traceSource.Switch.DisplayName) <InitializingTraceSource>g__CreateSwitch|3_0(<>c__DisplayClass3_2.sourceElement.SwitchType, <>c__DisplayClass3_2.sourceElement.SwitchName, ref <>c__DisplayClass3_); else <>c__DisplayClass3_.traceSource.Switch.Refresh(); } else if (!string.IsNullOrEmpty(<>c__DisplayClass3_2.sourceElement.SwitchValue)) { <>c__DisplayClass3_.traceSource.Switch.Level = (SourceLevels)Enum.Parse(typeof(SourceLevels), <>c__DisplayClass3_2.sourceElement.SwitchValue); } else { <>c__DisplayClass3_.traceSource.Switch.Level = SourceLevels.Off; } TraceListener[] array = new TraceListener[<>c__DisplayClass3_2.sourceElement.Listeners.Count]; int num = 0; foreach (ListenerElement listener in <>c__DisplayClass3_2.sourceElement.Listeners) { TraceListener traceListener = <>c__DisplayClass3_.traceSource.Listeners[listener.Name]; if (traceListener != null) array[num++] = listener.RefreshRuntimeObject(traceListener); else array[num++] = listener.GetRuntimeObject(); } System.Diagnostics.TraceUtils.CopyStringDictionary(<>c__DisplayClass3_2.sourceElement.Attributes, <>c__DisplayClass3_.traceSource.Attributes); <>c__DisplayClass3_.traceSource.Listeners.Clear(); <>c__DisplayClass3_.traceSource.Listeners.AddRange(array); } else { <>c__DisplayClass3_.traceSource.Switch.Level = <>c__DisplayClass3_.traceSource.DefaultLevel; <>c__DisplayClass3_.traceSource.Listeners.Clear(); <>c__DisplayClass3_.traceSource.Attributes.Clear(); } } } private static void ConfigureTraceSettings() { TraceSection traceSection = System.Diagnostics.DiagnosticsConfiguration.SystemDiagnosticsSection?.Trace; if (traceSection != null) { Trace.UseGlobalLock = traceSection.UseGlobalLock; Trace.AutoFlush = traceSection.AutoFlush; Trace.IndentSize = traceSection.IndentSize; ListenerElementsCollection listenerElementsCollection = System.Diagnostics.DiagnosticsConfiguration.SystemDiagnosticsSection?.Trace.Listeners; if (listenerElementsCollection != null) { Trace.Listeners.Clear(); foreach (TraceListener item in listenerElementsCollection.GetRuntimeObject()) { Trace.Listeners.Add(item); } } } } private static void InitializingSwitch(object sender, InitializingSwitchEventArgs e) { Switch switch = e.Switch; SwitchElementsCollection switchSettings = System.Diagnostics.DiagnosticsConfiguration.SwitchSettings; if (switchSettings != null) { SwitchElement switchElement = switchSettings[switch.DisplayName]; if (switchElement != null) { if (switchElement.Value != null) switch.Value = switchElement.Value; else switch.Value = switch.DefaultValue; System.Diagnostics.TraceUtils.CopyStringDictionary(switch.Attributes, switchElement.Attributes); } } } } }