diff options
Diffstat (limited to 'src/mscorlib/src/System/Diagnostics/Eventing/XplatEventLogger.cs')
-rw-r--r-- | src/mscorlib/src/System/Diagnostics/Eventing/XplatEventLogger.cs | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/mscorlib/src/System/Diagnostics/Eventing/XplatEventLogger.cs b/src/mscorlib/src/System/Diagnostics/Eventing/XplatEventLogger.cs index d7112fc81b..c96d2129f0 100644 --- a/src/mscorlib/src/System/Diagnostics/Eventing/XplatEventLogger.cs +++ b/src/mscorlib/src/System/Diagnostics/Eventing/XplatEventLogger.cs @@ -73,9 +73,8 @@ namespace System.Diagnostics.Tracing } } - private static string Serialize(ReadOnlyCollection<string> payloadName, ReadOnlyCollection<object> payload, string sep = ", ") + private static string Serialize(ReadOnlyCollection<string> payloadName, ReadOnlyCollection<object> payload, string eventMessage) { - if (payloadName == null || payload == null ) return String.Empty; @@ -92,8 +91,22 @@ namespace System.Diagnostics.Tracing var sb = StringBuilderCache.Acquire(); sb.Append('{'); + + // If the event has a message, send that as well as a pseudo-field + if (!string.IsNullOrEmpty(eventMessage)) + { + sb.Append("\\\"EventSource_Message\\\":\\\""); + minimalJsonserializer(eventMessage,sb); + sb.Append("\\\""); + if (eventDataCount != 0) + sb.Append(", "); + } + for (int i = 0; i < eventDataCount; i++) { + if (i != 0) + sb.Append(", "); + var fieldstr = payloadName[i].ToString(); sb.Append("\\\""); @@ -114,14 +127,9 @@ namespace System.Diagnostics.Tracing sb.Append(payload[i].ToString()); } - sb.Append(sep); - } - - sb.Length -= sep.Length; - sb.Append('}'); - - return StringBuilderCache.GetStringAndRelease(sb); + sb.Append('}'); + return StringBuilderCache.GetStringAndRelease(sb); } internal protected override void OnEventSourceCreated(EventSource eventSource) @@ -149,7 +157,7 @@ namespace System.Diagnostics.Tracing if (eventData.Payload != null) { try{ - payload = Serialize(eventData.PayloadNames, eventData.Payload); + payload = Serialize(eventData.PayloadNames, eventData.Payload, eventData.Message); } catch (Exception ex) { |