in src/Libs/Common/BlobLoggerProvider.cs [195:230]
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
{
var ext = new Dictionary<string, JToken>();
if (state is IEnumerable<KeyValuePair<string, object>> pairs)
{
foreach (var pair in pairs)
{
try
{
ext[pair.Key] =JToken.FromObject(pair.Value??String.Empty);
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
}
else if (state != null)
{
ext["State"] = JToken.FromObject(state);
}
_provider.Enqueue(
new LogItem
{
EventTime = DateTime.UtcNow,
EventId = eventId.Id,
EventName = eventId.Name,
ThreadId = Thread.CurrentThread.ManagedThreadId,
Logger = _categoryName,
Text = formatter(state, exception),
Exception = exception?.ToString(),
Extensions = ext,
});
}