如何将全局元数据添加到 ASP.NET 核心日志记录?
How to add global metadata to ASP.NET Core logging?
我想将我的应用程序的内部版本号添加到使用 Application Insights 进行日志存储的 ASP.NET Core 3.1 应用程序的所有日志中。不必到处使用 BeginScope
和 EndScope
是否可行?我假设它是 ConfigureLogging
启动挂钩的一部分,但没有看到任何东西。我过去用 Serilog 的 enrichers 做过这个,但我目前没有使用那个库。
您可以使用 TelemetryInitializer 实现。 (https://docs.microsoft.com/en-us/azure/azure-monitor/app/api-filtering-sampling#addmodify-properties-itelemetryinitializer)
public class BuildNumberTelemetryInitializer : ITelemetryInitializer
{
public void Initialize(ITelemetry telemetry)
{
(telemetry as ISupportProperties).Properties.Add("BuildNumber", "ValueForBuildNumber");
}
您需要将此初始化程序添加到配置中,如果您使用的是 Asp.Net 核心应用程序,则按如下方式完成。
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<ITelemetryInitializer, BuildNumberTelemetryInitializer >();
}
我想将我的应用程序的内部版本号添加到使用 Application Insights 进行日志存储的 ASP.NET Core 3.1 应用程序的所有日志中。不必到处使用 BeginScope
和 EndScope
是否可行?我假设它是 ConfigureLogging
启动挂钩的一部分,但没有看到任何东西。我过去用 Serilog 的 enrichers 做过这个,但我目前没有使用那个库。
您可以使用 TelemetryInitializer 实现。 (https://docs.microsoft.com/en-us/azure/azure-monitor/app/api-filtering-sampling#addmodify-properties-itelemetryinitializer)
public class BuildNumberTelemetryInitializer : ITelemetryInitializer
{
public void Initialize(ITelemetry telemetry)
{
(telemetry as ISupportProperties).Properties.Add("BuildNumber", "ValueForBuildNumber");
}
您需要将此初始化程序添加到配置中,如果您使用的是 Asp.Net 核心应用程序,则按如下方式完成。
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<ITelemetryInitializer, BuildNumberTelemetryInitializer >();
}