1

是否有任何方法可以在运行时切换检测密钥,基于某些业务逻辑将日志目标定位到不同的 Application Insights 实例。

由于我们将 Application Insights 配置为在启动项目中用作 Logger,因此我找不到任何开箱即用的方法或破解此要求的解决方法。

如果我使用 Application Insight 作为遥测客户端,则可以轻松完成上述切换,因为在这种情况下,我可以在运行时向客户端提供不同的检测密钥,这与使用 ASP 的内置 DI 注入的 ILogger 不同.NET 核心。

4

2 回答 2

3

编写一个初始化程序以有条件地覆盖检测键,如下所示:

class MyTelemetryInstrumentationKeyOverrider : ITelemetryInitializer
    {
        public void Initialize(ITelemetry telemetry)
        {
            // conditionally do this.
            telemetry.Context.InstrumentationKey = "newkey";
        }
    }
于 2019-10-08T05:11:27.860 回答
1

这必须在应用程序启动时完成,在这种情况下是。但启动应用程序后无法更改。

您可以查看动态检测密钥

protected void Application_Start()
{
  Microsoft.ApplicationInsights.Extensibility.
    TelemetryConfiguration.Active.InstrumentationKey = 
      // - for example -
      WebConfigurationManager.AppSettings["ikey"];
于 2019-10-06T13:02:04.757 回答