public void EventSourceSetup_HigherSeverity() { // get default sink using reflection var defaultLogger = OtelLogging.GetLogger(); var sinkField = defaultLogger.GetType().GetField("_sink", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); var defaultSink = (ISink)sinkField.GetValue(defaultLogger); try { var testSink = new TestSink(); var listener = new SdkSelfDiagnosticsEventListener(EventLevel.Verbose); // override default logger's sink with test sink sinkField.SetValue(defaultLogger, testSink); // Emitting a Verbose event. Or any EventSource event with lower severity than Error. AspNetTelemetryEventSource.Log.ActivityRestored("123"); OpenTelemetrySdkEventSource.Log.ActivityStarted("Activity started", "1"); testSink.Messages.Should().Contain(msg => msg.Contains("EventSource=OpenTelemetry-Instrumentation-AspNet-Telemetry, Message=Activity restored, Id='123'")); testSink.Messages.Should().Contain(msg => msg.Contains("EventSource=OpenTelemetry-Sdk, Message=Activity started.")); } finally { // restore default sink sinkField.SetValue(defaultLogger, defaultSink); } }
public void EventSourceSetup_LowerSeverity() { // get default sink using reflection var defaultLogger = OtelLogging.GetLogger(); var sinkField = defaultLogger.GetType().GetField("_sink", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); var defaultSink = (ISink)sinkField.GetValue(defaultLogger); try { var testSink = new TestSink(); var listener = new SdkSelfDiagnosticsEventListener(EventLevel.Error); // override default logger's sink with test sink sinkField.SetValue(defaultLogger, testSink); // Emitting a Verbose event. Or any EventSource event with lower severity than Error. AspNetTelemetryEventSource.Log.ActivityRestored("123"); OpenTelemetrySdkEventSource.Log.ActivityStarted("Activity started", "1"); testSink.Messages.Should().BeEmpty("events with lower severity than error should not be written."); } finally { // restore default sink sinkField.SetValue(defaultLogger, defaultSink); } }