本文介绍了在.Net core 3.1控制台应用程序中将NLOG与ApplicationInsightsTelemetryWorkerService配合使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在配置一个具有应用程序洞察和nlog的.Net Core 3控制台应用程序
我的代码配置如下
Program.cs
.ConfigureLogging((hostingContext, logging) =>
{
logging.ClearProviders();
logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
logging.AddNLog(NLog.LogManager.LoadConfiguration("nlog.config").Configuration);
})
.ConfigureServices((hostContext, services) =>
{
services.SetupConfiguration(hostContext.Configuration);
services.AddApplicationInsightsTelemetryWorkerService("--AI-Key--");
在我的nlog.config中,我有
<extensions>
<add assembly="NLog.Web.AspNetCore"/>
<add assembly="Microsoft.ApplicationInsights.NLogTarget" />
</extensions>
<!-- the targets to write to -->
<targets>
<target name="Console" xsi:type="Console" layout="${longdate} ${level} ${message}"/>
<target xsi:type="ApplicationInsightsTarget" name="appInsights" />
</targets>
<!-- rules to map from logger name to target -->
<rules>
<!--All logs, including from Microsoft-->
<logger name="*" minlevel="Trace" writeTo="Console" />
<logger name="*" minlevel="Trace" writeTo="appInsights" />
</rules>
在appsettings.json中我有
"Logging": {
"LogLevel": {
"Default": "Debug"
}
},
"ApplicationInsights": {
"InstrumentationKey": "--AI-Key--"
},
在我的代码中,我使用构造函数注入来获取记录器,然后
_logger.LogDebug("something");
但是,当我运行这个应用程序时,我没有得到任何有关应用程序洞察的信息。我还注意到,在我的输出窗口中,我得到了一些以:开头的日志Application Insights Telemetry (unconfigured): .....
遗憾的是,没有太多文档可供参考。谁能给我指个方向。
非常感谢。
推荐答案
除了彼得·邦斯的回答,还有一件重要的事情你应该知道:
消息Application Insights Telemetry (unconfigured): .....
表示AI-Key配置不正确,无法看到数据浮动到appInsights中。
请尝试在nlog.config
中添加AI-Key,如下所示:
<targets>
<target name="Console" xsi:type="Console" layout="${longdate} ${level} ${message}"/>
<target xsi:type="ApplicationInsightsTarget" name="appInsights">
<instrumentationKey>your_AI_Key</instrumentationKey>
</target>
</targets>
如果没有在nlog.config中添加AI_KEY,我可以重现您的问题;但如果在nlog.config中添加AI_KEY,则可以正常工作。
如果您仍然有此问题,请提供有效的示例代码以及这些Nuget包和版本。
这篇关于在.Net core 3.1控制台应用程序中将NLOG与ApplicationInsightsTelemetryWorkerService配合使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!