Как добавить глобальные метаданные в ведение журнала ASP.NET Core?
Я хотел бы добавить номер сборки моего приложения во все журналы в приложении ASP.NET Core 3.1, которое использует Application Insights для хранения журналов. Возможно ли это без использованияBeginScope
а также EndScope
везде? Я предполагал, что это будет частьюConfigureLogging
автозагрузка, но ничего не видел. Я делал это в прошлом с расширениями Serilog, но в настоящее время не использую эту библиотеку.
1 ответ
Решение
Вы можете добиться этого с помощью TelemetryInitializer. (https://docs.microsoft.com/en-us/azure/azure-monitor/app/api-filtering-sampling)
public class BuildNumberTelemetryInitializer : ITelemetryInitializer
{
public void Initialize(ITelemetry telemetry)
{
(telemetry as ISupportProperties).Properties.Add("BuildNumber", "ValueForBuildNumber");
}
Вам нужно добавить этот инициализатор в конфигурацию, как показано ниже, если вы используете приложения Asp.Net Core.
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<ITelemetryInitializer, BuildNumberTelemetryInitializer >();
}