我想启用从WebApi(使用自定义记录器)到应用程序见解的日志记录。
一切正常,但是我需要在instrumentation key
中为appsetting.json
提供强制约定:
"Values": {
"AppInsightsKey": "I want to put key here"
},
"ApplicationInsights": {
"InstrumentationKey": "Now I must put key 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
,那么这也是正确的解决方案。
答案 0 :(得分:1)
但是我不能直接从Azure设置中覆盖此第二个设置:
请以以下格式添加应用程序: ApplicationInsights:InstrumentationKey 作为Azure应用程序设置中的应用程序设置键。有关更多信息,请参阅此tutorial。
答案 1 :(得分:1)
将检测键设置为环境变量“ APPINSIGHTS_INSTRUMENTATIONKEY”。应该由Application Insights SDK提取。
答案 2 :(得分:0)
在Program.cs中,您可以将见解添加到WebHostBuilder,而不是.UseApplicationInsights()
,您可以执行.UseApplicationInsights("YourKeyHere")
。