我目前正在开发一个 .NET 项目,我需要将日志记录到 Azure Application Insights 和本地文件。为此,我将 Serilog 与 Serilog.ApplicationInsights.Sink 包一起使用。我的设置允许我有效地登录到两个目的地。然而,我在 Application Insights 集成方面面临挑战。
问题: 集成 Serilog 后,Application Insights 中的实时指标跟踪功能似乎受到干扰。具体来说,我不再在实时指标流中看到示例遥测数据。这是满足我们实时监控需求的关键功能。
问题: 如何配置 Serilog,使其记录到本地文件而不干扰 Application Insights 的实时指标功能?我应该注意 Serilog 或 Application Insights 中是否有任何特定设置或配置,以便在保留完整功能的同时实现这种双重日志记录功能?
我尝试过的:
Serilog 与 Serilog.ApplicationInsights.Sink 的标准集成。 确保针对实时指标正确配置 Application Insights。 我非常感谢社区可以提供解决此问题的任何见解、代码片段或配置示例。
提前感谢您的帮助!
我在 Azure Web 应用程序上使用了
Serilog.Sinks.ApplicationInsights
,我可以从 Application Insights 仪表板查看实时指标。telemetryConverter
属性?
这就是我在配置中配置接收器的方式:
ApplicationInsights
的日志。connectionString
,其值类似于 InstrumentationKey=<your-key>;IngestionEndpoint=https://westeurope-5.in.applicationinsights.azure.com/;LiveEndpoint=https://westeurope.livediagnostics.monitor.azure.com/
。telemetryConverter
,其值为 Serilog.Sinks.ApplicationInsights.TelemetryConverters.TraceTelemetryConverter, Serilog.Sinks.ApplicationInsights
。在 Azure 上,配置由 Web 应用程序的配置部分提供,具有以下键:
Serilog__WriteTo__2__Name
、Serilog__WriteTo__2__Args__connectionString
、Serilog__WriteTo__2__Args__telemetryConverter
。
请注意,
__WriteTo__
后面指定的数字指的是配置中WriteTo
数组中的位置。
另外我还在配置中指定了
APPINSIGHTS_INSTRUMENTATIONKEY
和 APPLICATIONINSIGHTS_CONNECTION_STRING
的按键。
我希望这可以帮助你。