Using nlog with ApplicationInsightsTelemetryWorkerService in .net core 3.1 console app(在.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配合使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在.Net core 3.1控制台应用程序中将NLOG与ApplicationInsightsTelemetryWorkerService配合使用
基础教程推荐
- 将 Office 安装到 Windows 容器 (servercore:ltsc2019) 失败,错误代码为 17002 2022-01-01
- rabbitmq 的 REST API 2022-01-01
- 为什么Flurl.Http DownloadFileAsync/Http客户端GetAsync需要 2022-09-30
- 如何激活MC67中的红灯 2022-01-01
- 有没有办法忽略 2GB 文件上传的 maxRequestLength 限制? 2022-01-01
- 将 XML 转换为通用列表 2022-01-01
- SSE 浮点算术是否可重现? 2022-01-01
- c# Math.Sqrt 实现 2022-01-01
- 如何在 IDE 中获取 Xamarin Studio C# 输出? 2022-01-01
- MS Visual Studio .NET 的替代品 2022-01-01