Если я регистрирую исключение с некоторыми парами ключ / значение, добавленными в Данные, эти значения не регистрируются. В некоторых случаях они были бы действительно полезны для диагностики проблемы, но я не вижу никакого способа настроить это.
Например, следующее консольное приложение:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging" Version="3.1.2" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.1.2" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.1.2" />
</ItemGroup>
</Project>
class Program
{
static void Main(string[] args)
{
var exception = new Exception("Oops!");
exception.Data.Add("useful-data-key", "useful-data-value");
ILogger<Program> logger = LoggerFactory.Create(builder => builder.AddConsole()).CreateLogger<Program>();
logger.LogError(exception, "An error occurred in the console.");
Console.WriteLine("Logged");
Console.Read();
}
}
В результате это регистрируется на консоли:
fail: Console.Program[0]
An error occurred in the console.
System.Exception: Oops!
Нет признаков значений в словаре данных.
То же самое верно, если я регистрируюсь в Azure Application Insight в ASP. NET Базовое приложение.
Можно ли как-нибудь получить эти данные для вывода в журналы?