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;
}