diff --git a/src/Logging/Logging.EventSource/src/Microsoft.Extensions.Logging.EventSource.csproj b/src/Logging/Logging.EventSource/src/Microsoft.Extensions.Logging.EventSource.csproj
index 182fd068ec1..b339258efff 100644
--- a/src/Logging/Logging.EventSource/src/Microsoft.Extensions.Logging.EventSource.csproj
+++ b/src/Logging/Logging.EventSource/src/Microsoft.Extensions.Logging.EventSource.csproj
@@ -22,4 +22,8 @@
+
+
+
+
diff --git a/src/Logging/Logging.EventSource/test/EventSourceLoggerTest.cs b/src/Logging/Logging.EventSource/test/EventSourceLoggerTest.cs
index 9511c6306bb..d78680cb7f0 100644
--- a/src/Logging/Logging.EventSource/test/EventSourceLoggerTest.cs
+++ b/src/Logging/Logging.EventSource/test/EventSourceLoggerTest.cs
@@ -456,6 +456,66 @@ public void Logs_AsExpected_FormattedMessage_WithNullString()
}
}
+ [Fact]
+ public void Logs_AsExpected_MessageJson_WithNullString()
+ {
+ using (var testListener = new TestEventListener())
+ {
+ var listenerSettings = new TestEventListener.ListenerSettings();
+ listenerSettings.Keywords = LoggingEventSource.Keywords.JsonMessage;
+ listenerSettings.FilterSpec = null;
+ listenerSettings.Level = EventLevel.Verbose;
+ testListener.EnableEvents(listenerSettings);
+
+ // Write some MessageJson events with null string.
+ for (var i = 0; i < 100; i++)
+ {
+ LoggingEventSource.Instance.MessageJson(LogLevel.Trace, 1, "MyLogger", 5, null, null, "testJson");
+ }
+
+ bool containsNullEventName = false;
+ foreach (var eventJson in testListener.Events)
+ {
+ if (eventJson.Contains(@"""__EVENT_NAME"":""MessageJson""") && eventJson.Contains(@"""EventName"":"""","))
+ {
+ containsNullEventName = true;
+ }
+ }
+
+ Assert.True(containsNullEventName, "EventName and ExceptionJson is supposed to be null but it isn't.");
+ }
+ }
+
+ [Fact]
+ public void Logs_AsExpected_ActivityJson_WithNullString()
+ {
+ using (var testListener = new TestEventListener())
+ {
+ var listenerSettings = new TestEventListener.ListenerSettings();
+ listenerSettings.Keywords = LoggingEventSource.Keywords.JsonMessage;
+ listenerSettings.FilterSpec = null;
+ listenerSettings.Level = EventLevel.Verbose;
+ testListener.EnableEvents(listenerSettings);
+
+ // Write some MessageJson events with null string.
+ for (var i = 0; i < 100; i++)
+ {
+ LoggingEventSource.Instance.ActivityJsonStart(6, 1, null, "someJson");
+ }
+
+ bool containsNullLoggerName = false;
+ foreach (var eventJson in testListener.Events)
+ {
+ if (eventJson.Contains(@"""__EVENT_NAME"":""ActivityJsonStart""") && eventJson.Contains(@"""LoggerName"":"""","))
+ {
+ containsNullLoggerName = true;
+ }
+ }
+
+ Assert.True(containsNullLoggerName, "LoggerName is supposed to be null but it isn't.");
+ }
+ }
+
private void LogStuff(ILoggerFactory factory)
{
var logger1 = factory.CreateLogger("Logger1");