ASP.NET Core 2.1 Web.API更改应用程序见解的日志记录检测键

时间:2018-07-06 08:43:50

标签: c# azure asp.net-core-webapi azure-application-insights asp.net-core-2.1

我想启用从WebApi(使用自定义记录器)到应用程序见解的日志记录。 一切正常,但是我需要在instrumentation key中为appsetting.json提供强制约定:

"Values": {
   "AppInsightsKey":  "I want to put key here" 
},
"ApplicationInsights": {
   "InstrumentationKey": "Now I must put key here"
}

但是,我不能直接从Azure设置覆盖此第二个设置: enter image description here

有什么办法可以正确设置它?

实际上,我是在Startup.cs中配置记录器:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace);
}

我的记录器包装器:

using Microsoft.Extensions.Logging;
...
public class MyCustomLogger : IMyCustomLogger
{
    private readonly ILogger _logger;

    public MyCustomLogger(ILogger<MyCustomLogger> logger)
    {
        _logger = logger;
    }
    public void LogInformation(string message, params object[] args)
    {
        _logger.LogInformation(message, args);
    }
}

PS。如果我可以在Azure上覆盖ApplicationInsights.InstrumentationKey,那么这也是正确的解决方案。

3 个答案:

答案 0 :(得分:1)

  

但是我不能直接从Azure设置中覆盖此第二个设置:

请以以下格式添加应用程序: ApplicationInsights:InstrumentationKey 作为Azure应用程序设置中的应用程序设置键。有关更多信息,请参阅此tutorial

enter image description here

答案 1 :(得分:1)

将检测键设置为环境变量“ APPINSIGHTS_INSTRUMENTATIONKEY”。应该由Application Insights SDK提取。

答案 2 :(得分:0)

在Program.cs中,您可以将见解添加到WebHostBuilder,而不是.UseApplicationInsights(),您可以执行.UseApplicationInsights("YourKeyHere")