private static Dictionary ConvertToDictionary()

in src/Serilog.Sinks.AzureDataExplorer/Extensions/LogEventExtensions.cs [59:90]


        private static Dictionary<string, object> ConvertToDictionary(
            LogEvent logEvent,
            IFormatProvider formatProvider = null)
        {
            var eventObject = new Dictionary<string, object>(5);

            eventObject.Add("Timestamp", logEvent.Timestamp.ToUniversalTime().ToString("o"));

            // TODO: Avoid calling ToString on enums
            eventObject.Add("Level", logEvent.Level.ToString());
            eventObject.Add("Message", logEvent.RenderMessage(formatProvider));
            eventObject.Add("Exception", logEvent.Exception);
            if (logEvent.Exception != null)
            {
                var exceptionDetails = new
                {
                    ExceptionStr = logEvent.Exception.ToString(),
                    Type = logEvent.Exception.GetType().FullName,
                    Message = logEvent.Exception.Message,
                    Source = logEvent.Exception.Source,
                    TargetSite = logEvent.Exception.TargetSite?.Name,
                    StackTrace = logEvent.Exception.StackTrace,
                    HelpLink = logEvent.Exception.HelpLink,
                    Data = logEvent.Exception.Data,
                    InnerException = logEvent.Exception.InnerException?.ToString()
                };
                eventObject.Add("ExceptionEx", exceptionDetails);
            }
            eventObject.Add("Properties", logEvent.Properties.Dictionary());

            return eventObject;
        }