Как добавить глобальные метаданные в ведение журнала 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 >();
}
Другие вопросы по тегам