我正在使用Microsoft Application Insights
作为我的Web应用程序。我使用Application Insights TraceListener NuGet包进行日志记录。这很有效。
现在我想切换到NLog。我添加了Microsoft.ApplicationInsights.NLogTarget
NuGet包并在我的NLog配置文件中添加了一个新的NLog目标:
<target name='ai' xsi:type='ApplicationInsights' />
NLog引发异常:
Target cannot be found: 'ApplicationInsights'
我还尝试通过扩展程序添加程序集,如下所示:
<extensions>
<add assembly="Microsoft.ApplicationInsights.NLogTarget" />
</extensions>
但它也没有用。
有什么建议吗?
答案 0 :(得分:4)
解决方案:(感谢@nemesv的提示)
以编程方式添加目标
ConfigurationItemFactory.Default.Targets.RegisterDefinition(
"ApplicationInsightsTarget",
typeof(Microsoft.ApplicationInsights.NLogTarget.ApplicationInsightsTarget)
);
并将其与
一起使用<target name='ai' xsi:type='ApplicationInsightsTarget' />
答案 1 :(得分:4)
或者您可以通过编程方式指定目标:
var config = new LoggingConfiguration();
ConfigurationItemFactory.Default.Targets.RegisterDefinition(
"ai",
typeof(ApplicationInsightsTarget)
);
ApplicationInsightsTarget aiTarget = new ApplicationInsightsTarget();
aiTarget.InstrumentationKey = "your_key";
aiTarget.Name = "ai";
config.AddTarget("ai", aiTarget);
LogManager.Configuration = config;