public void TestInitialize() { this.throttleAllContainer = new DiagnoisticsEventThrottlingMock( throttleAll: true, signalJustExceeded: true, sampleCounters: new Dictionary <int, DiagnoisticsEventCounters>()); this.notThrottleContainer = new DiagnoisticsEventThrottlingMock( throttleAll: false, signalJustExceeded: false, sampleCounters: new Dictionary <int, DiagnoisticsEventCounters>()); this.scheduler = new DiagnoisticsEventThrottlingSchedulerMock(); this.sender = new DiagnosticsEventCollectingMock(); this.throttleFirstCallManager = new DiagnoisticsEventThrottlingManager <DiagnoisticsEventThrottlingMock>( this.throttleAllContainer, this.scheduler, SampleIntervalInMinutes); this.notThrottleManager = new DiagnoisticsEventThrottlingManager <DiagnoisticsEventThrottlingMock>( this.notThrottleContainer, this.scheduler, SampleIntervalInMinutes); this.listener = new DiagnosticsListener(new List <IDiagnosticsSender> { this.sender }); this.listener.LogLevel = EventLevel.Verbose; }
public void TestListenerWithDifferentSeverity() { var senderMock = new F5DiagnosticsSenderMock(); var senders = new List<IDiagnosticsSender> { senderMock }; using (var listener = new DiagnosticsListener(senders)) { #if SILVERLIGHT CoreEventSource.Log.EnableEventListener(listener); #endif listener.LogLevel = EventLevel.Informational; CoreEventSource.Log.LogVerbose("Some verbose tracing"); Assert.AreEqual(0, senderMock.Messages.Count); CoreEventSource.Log.DiagnosticsEventThrottlingHasBeenResetForTheEvent(10, 1); Assert.AreEqual(1, senderMock.Messages.Count); senderMock.Messages.Clear(); listener.LogLevel = EventLevel.Verbose; CoreEventSource.Log.LogVerbose("Some verbose tracing"); Assert.AreEqual(1, senderMock.Messages.Count); senderMock.Messages.Clear(); CoreEventSource.Log.DiagnosticsEventThrottlingHasBeenResetForTheEvent(10, 1); Assert.AreEqual(1, senderMock.Messages.Count); senderMock.Messages.Clear(); listener.LogLevel = EventLevel.Error; CoreEventSource.Log.LogError("Logging an error"); Assert.AreEqual(1, senderMock.Messages.Count); } }
/// <summary> /// Initializes a new instance of the <see cref="DiagnosticsTelemetryModule"/> class. /// </summary> public DiagnosticsTelemetryModule() { // Adding a dummy queue sender to keep the data to be sent to the portal before the initialize method is called this.Senders.Add(new PortalDiagnosticsQueueSender()); this.EventListener = new DiagnosticsListener(this.Senders); }
public void TestListenerWithDifferentSeverity() { var senderMock = new DiagnosticsSenderMock(); var senders = new List <IDiagnosticsSender> { senderMock }; using (var listener = new DiagnosticsListener(senders)) { listener.LogLevel = EventLevel.Informational; CoreEventSource.Log.LogVerbose("Some verbose tracing"); Assert.AreEqual(0, senderMock.Messages.Count); CoreEventSource.Log.DiagnosticsEventThrottlingHasBeenResetForTheEvent(10, 1); Assert.AreEqual(1, senderMock.Messages.Count); senderMock.Messages.Clear(); listener.LogLevel = EventLevel.Verbose; CoreEventSource.Log.LogVerbose("Some verbose tracing"); Assert.AreEqual(1, senderMock.Messages.Count); senderMock.Messages.Clear(); CoreEventSource.Log.DiagnosticsEventThrottlingHasBeenResetForTheEvent(10, 1); Assert.AreEqual(1, senderMock.Messages.Count); senderMock.Messages.Clear(); listener.LogLevel = EventLevel.Error; CoreEventSource.Log.LogError("Logging an error"); Assert.AreEqual(1, senderMock.Messages.Count); } }
/// <summary> /// Initializes a new instance of the <see cref="DiagnosticsTelemetryModule"/> class. /// </summary> public DiagnosticsTelemetryModule() { // Adding a dummy queue sender to keep the data to be sent to the portal before the initialize method is called this.Senders.Add(new PortalDiagnosticsQueueSender()); this.Senders.Add(new F5DiagnosticsSender()); this.EventListener = new DiagnosticsListener(this.Senders); }
/// <summary> /// Initializes a new instance of the <see cref="DiagnosticsTelemetryModule"/> class. /// </summary> public DiagnosticsTelemetryModule() { // Adding a dummy queue sender to keep the data to be sent to the portal before the initialize method is called this.Senders.Add(new PortalDiagnosticsQueueSender()); this.EventListener = new DiagnosticsListener(this.Senders); this.heartbeatInterval = Tracing.HeartbeatProvider.DefaultHeartbeatInterval; this.HeartbeatProvider = new HeartbeatProvider(); }
/// <summary> /// Initializes a new instance of the <see cref="DiagnosticsTelemetryModule"/> class. /// </summary> public DiagnosticsTelemetryModule() { // Adding a dummy queue sender to keep the data to be sent to the portal before the initialize method is called this.Senders.Add(new PortalDiagnosticsQueueSender()); this.Senders.Add(new F5DiagnosticsSender()); this.EventListener = new DiagnosticsListener(this.Senders); #if Wp80 CoreEventSource.Log.EnableEventListener(this.EventListener); #endif }
public void TestEventSending() { var senderMock = new F5DiagnosticsSenderMock(); var senders = new List<IDiagnosticsSender> { senderMock }; using (var listener = new DiagnosticsListener(senders)) { listener.LogLevel = EventLevel.Verbose; CoreEventSource.Log.LogVerbose("failure"); } Assert.AreEqual(1, senderMock.Messages.Count); Assert.AreEqual("[msg=Log verbose];[msg=failure]", senderMock.Messages[0]); }
public void TestEventSending() { var senderMock = new DiagnosticsSenderMock(); var senders = new List <IDiagnosticsSender> { senderMock }; using (var listener = new DiagnosticsListener(senders)) { listener.LogLevel = EventLevel.Verbose; CoreEventSource.Log.LogVerbose("failure"); } Assert.AreEqual(1, senderMock.Messages.Count); Assert.AreEqual("[msg=Log verbose];[msg=failure]", senderMock.Messages[0]); }
public DiagnoisticsEventThrottlingManagerTest() { this.throttleFirstCallManager = new DiagnoisticsEventThrottlingManager<DiagnoisticsEventThrottlingMock>( this.throttleAllContainer, this.scheduler, SampleIntervalInMinutes); this.notThrottleManager = new DiagnoisticsEventThrottlingManager<DiagnoisticsEventThrottlingMock>( this.notThrottleContainer, this.scheduler, SampleIntervalInMinutes); this.listener = new DiagnosticsListener(new List<IDiagnosticsSender> { this.sender }); this.listener.LogLevel = EventLevel.Verbose; }
public void TestConstructorThrowsArgumentException() { bool failedWithExpectedException = false; try { using (var listener = new DiagnosticsListener(null)) { // nop } } catch (ArgumentNullException) { failedWithExpectedException = true; } Assert.IsTrue(failedWithExpectedException); }
public DiagnosticsEventListener(DiagnosticsListener listener, EventLevel logLevel) { this.listener = listener; this.logLevel = logLevel; List <EventSource> eventSources; lock (this.eventSourcesDuringConstruction) { eventSources = this.eventSourcesDuringConstruction; this.eventSourcesDuringConstruction = null; } foreach (var eventSource in eventSources) { this.EnableEvents(eventSource, this.logLevel, (EventKeywords)AllKeyword); } }
public DiagnoisticsEventThrottlingManagerTest() { this.throttleFirstCallManager = new DiagnoisticsEventThrottlingManager <DiagnoisticsEventThrottlingMock>( this.throttleAllContainer, this.scheduler, SampleIntervalInMinutes); this.notThrottleManager = new DiagnoisticsEventThrottlingManager <DiagnoisticsEventThrottlingMock>( this.notThrottleContainer, this.scheduler, SampleIntervalInMinutes); this.listener = new DiagnosticsListener(new List <IDiagnosticsSender> { this.sender }); this.listener.LogLevel = EventLevel.Verbose; }
public void TestEventSourceLogLevelWhenEventSourceIsAlreadyCreated() { using (var testEventSource = new TestEventSource()) { var senderMock = new DiagnosticsSenderMock(); var senders = new List <IDiagnosticsSender> { senderMock }; using (var listener = new DiagnosticsListener(senders)) { const EventKeywords AllKeyword = (EventKeywords)(-1); // The default level is EventLevel.Error Assert.IsTrue(testEventSource.IsEnabled(EventLevel.Error, AllKeyword)); // So Verbose should not be enabled Assert.IsFalse(testEventSource.IsEnabled(EventLevel.Verbose, AllKeyword)); listener.LogLevel = EventLevel.Verbose; Assert.IsTrue(testEventSource.IsEnabled(EventLevel.Verbose, AllKeyword)); } } }
public void EnableEventListener(DiagnosticsListener listener) { this.eventListener = listener; }
public DiagnosticsEventListener(DiagnosticsListener listener, EventLevel logLevel) { this.listener = listener; this.logLevel = logLevel; }
public void TestListenerWithDifferentSeverity() { // Ensure there are no left-over DiagnosticTelemetryModules // from previous tests that will mess up this one. TelemetryConfiguration.Active.Dispose(); var modules = TelemetryModules.Instance.Modules; if (modules != null) { foreach (var module in modules) { (module as IDisposable)?.Dispose(); } modules.Clear(); } var senderMock = new DiagnosticsSenderMock(); var senders = new List <IDiagnosticsSender> { senderMock }; using (var listener = new DiagnosticsListener(senders)) { const EventKeywords AllKeyword = (EventKeywords)(-1); Assert.IsTrue(CoreEventSource.Log.IsEnabled(), "Fail: eventSource should be enabled."); Assert.IsTrue(CoreEventSource.Log.IsEnabled(EventLevel.Error, AllKeyword), "Fail: Error is expected to be enabled by default"); listener.LogLevel = EventLevel.Informational; Assert.IsTrue(CoreEventSource.Log.IsEnabled(EventLevel.Informational, AllKeyword), "Fail: Informational is expected to be enabled"); CoreEventSource.Log.LogVerbose("Some verbose tracing"); Assert.AreEqual(0, senderMock.Messages.Count); CoreEventSource.Log.DiagnosticsEventThrottlingHasBeenResetForTheEvent(10, 1); Assert.AreEqual(1, senderMock.Messages.Count); senderMock.Messages.Clear(); listener.LogLevel = EventLevel.Verbose; Assert.IsTrue(CoreEventSource.Log.IsEnabled(EventLevel.Verbose, AllKeyword), "Fail: Verbose is expected to be enabled"); CoreEventSource.Log.LogVerbose("Some verbose tracing"); Assert.AreEqual(1, senderMock.Messages.Count); senderMock.Messages.Clear(); CoreEventSource.Log.DiagnosticsEventThrottlingHasBeenResetForTheEvent(10, 1); Assert.AreEqual(1, senderMock.Messages.Count); senderMock.Messages.Clear(); listener.LogLevel = EventLevel.Error; Assert.IsTrue(CoreEventSource.Log.IsEnabled(EventLevel.Error, AllKeyword), "Fail: Error is expected to be enabled"); CoreEventSource.Log.LogError("Logging an error"); // If you see the following assert fail, it's because another test has // leaked a DiagnosticsTelemetryModule (via TelemetryConfiguration.Active // for example). There will be a DiagnosticEventListener which forwards // error messages to a PortalDiagnosticsSender. That listener is still // getting events from EventSources. We send an Error event, which goes // not only to our listener here, but also to the leaked one. The event // gets forwarded to the PortalDiagnosticsSender. That turns the event // into TraceTelemetry and tries to transmit it. Since we set the event // level to verbose earlier, RichPayloadEventSource is is enabled and // it writes the TraceTelemetry to all listeners (including us). // Unfortuantely, the TraceTelemetry contains a nullable field which // triggers a known .NET Core 2.0 bug inside WriteEvent. The internal // exception gets reported as an error from WriteEvent resulting in another // event with EventLevel.Error being reported here. Assert.AreEqual(1, senderMock.Messages.Count); } }
public void TestConstructorThrowsArgumentException() { var listener = new DiagnosticsListener(null); }