如何使用 Serilog 和本地文件日志记录维护 Application Insights 实时指标

问题描述 投票:0回答:1

我目前正在开发一个 .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-application-insights serilog
1个回答
0
投票

我在 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
的按键。

我希望这可以帮助你。

© www.soinside.com 2019 - 2024. All rights reserved.