public static EventData ToEventData(this EventWrittenEventArgs eventSourceEvent) { EventData eventData = new EventData { ProviderName = eventSourceEvent.EventSource.GetType().FullName, Timestamp = DateTime.UtcNow, EventId = eventSourceEvent.EventId, Level = EventLevelNames[(int) eventSourceEvent.Level], Keywords = HexadecimalNumberPrefix + ((ulong) eventSourceEvent.Keywords).ToString("X16", CultureInfo.InvariantCulture), EventName = eventSourceEvent.EventName, }; try { if (eventSourceEvent.Message != null) { // If the event has a badly formatted manifest, the FormattedMessage property getter might throw eventData.Message = string.Format(CultureInfo.InvariantCulture, eventSourceEvent.Message, eventSourceEvent.Payload.ToArray()); } } catch { } eventData.Payload = eventSourceEvent.GetPayloadData(); return eventData; }
private DynamicTableEntity ToTableEntity(EventData eventData, string partitionKey, string rowKeyPrefix) { DynamicTableEntity result = new DynamicTableEntity(); result.PartitionKey = partitionKey; result.RowKey = rowKeyPrefix + KeySegmentSeparator + this.GetEntitySequenceId().ToString() + KeySegmentSeparator + this.instanceId; result.Properties.Add(nameof(eventData.Timestamp), new EntityProperty(eventData.Timestamp)); result.Properties.Add(nameof(eventData.ProviderName), new EntityProperty(eventData.ProviderName)); result.Properties.Add(nameof(eventData.EventId), new EntityProperty(eventData.EventId)); result.Properties.Add(nameof(eventData.Message), new EntityProperty(eventData.Message)); result.Properties.Add(nameof(eventData.Level), new EntityProperty(eventData.Level)); result.Properties.Add(nameof(eventData.Keywords), new EntityProperty(eventData.Keywords)); result.Properties.Add(nameof(eventData.EventName), new EntityProperty(eventData.EventName)); foreach (KeyValuePair<string, object> item in eventData.Payload) { result.Properties.Add(item.Key, EntityProperty.CreateEntityPropertyFromObject(item.Value)); } return result; }