public void WhenNewSettingsApplied_ThenTraceSourceLevelIsSet() { var setting = new RuntimeSettings(); setting.Tracing.TraceSources.Add(new TraceSourceSetting("Foo", SourceLevels.Warning)); this.manager.Raise(x => x.SettingsChanged += null, new ChangedEventArgs<IRuntimeSettings>(new RuntimeSettings(), setting)); Assert.Equal(SourceLevels.Warning, this.source.Switch.Level); }
public void WhenDisposingMonitor_ThenStopsTrackingChanges() { var setting = new RuntimeSettings(); setting.Tracing.TraceSources.Add(new TraceSourceSetting("Foo", SourceLevels.Information)); this.monitor.Dispose(); this.manager.Raise(x => x.SettingsChanged += null, new ChangedEventArgs<IRuntimeSettings>(new RuntimeSettings(), setting)); Assert.Equal(SourceLevels.Off, this.source.Switch.Level); }
public void Initialize() { this.source = Tracer.Manager.GetSource("Foo"); this.source.Switch.Level = SourceLevels.Off; this.manager = new Mock<ISettingsManager>(); var setting = new RuntimeSettings(); setting.Tracing.TraceSources.Add(new TraceSourceSetting("Foo", SourceLevels.Warning)); this.manager.Setup(x => x.Read()).Returns(setting); this.monitor = new TracingSettingsMonitor(this.manager.Object); }
public void WhenNewSettingsApplied_ThenDefaultTraceListenerIsRestored() { var setting = new RuntimeSettings(); setting.Tracing.TraceSources.Add(new TraceSourceSetting("Foo", SourceLevels.Information)); this.manager.Raise(x => x.SettingsChanged += null, new ChangedEventArgs<IRuntimeSettings>(new RuntimeSettings(), setting)); var source = Tracer.Manager.GetSource("Foo"); Assert.True(source.Listeners.Cast<TraceListener>().OfType<DefaultTraceListener>().Any()); }
public void WhenNewRootDefaultLevelIsApplied_ThenDefaultSourceLevelIsApplied() { var setting = new RuntimeSettings(); setting.Tracing.RootSourceLevel = SourceLevels.ActivityTracing; this.manager.Raise(x => x.SettingsChanged += null, new ChangedEventArgs<IRuntimeSettings>(new RuntimeSettings(), setting)); var defaultSource = Tracer.Manager.GetSource(TracingSettings.DefaultRootSourceName); Assert.Equal(SourceLevels.ActivityTracing, defaultSource.Switch.Level); }
private static RuntimeSettings ReadSettings(IServiceProvider serviceProvider) { var store = GetStore(serviceProvider); //// TODO: refactor this code to be generic and reflection/typedescritor-based. var settings = new RuntimeSettings(); var tracingRoot = Path.Combine(StoreConstants.RegistrySettingsKeyName, RuntimeSettings, Tracing); var sourceNamesRoot = Path.Combine(StoreConstants.RegistrySettingsKeyName, RuntimeSettings, Tracing, SourceNames); if (!store.CollectionExists(tracingRoot)) { return settings; } if (store.PropertyExists(tracingRoot, RootSourceLevel)) { var rootSourceLevel = store.GetString(tracingRoot, RootSourceLevel); if (Enum.IsDefined(typeof(SourceLevels), rootSourceLevel)) { settings.Tracing.RootSourceLevel = (SourceLevels)Enum.Parse(typeof(SourceLevels), rootSourceLevel); } } foreach (var sourceName in store.GetPropertyNames(sourceNamesRoot)) { var value = store.GetString(sourceNamesRoot, sourceName); if (Enum.IsDefined(typeof(SourceLevels), value)) { settings.Tracing.TraceSources.Add(new TraceSourceSetting(sourceName, (SourceLevels)Enum.Parse(typeof(SourceLevels), value))); } else { tracer.Warn(Resources.SettingsManager_InvalidTraceLevel, value, sourceName); } } return settings; }