How do I use Microsoft Application Insights with NLog (Target cannot be found: 'ApplicationInsights')

社会主义新天地 提交于 2019-12-10 02:56:13

问题


I am using Microsoft Application Insights for my Web Application. I used the Application Insights TraceListener NuGet package for logging. That worked perfectly.

Now I would like to switch to NLog. I added the Microsoft.ApplicationInsights.NLogTarget NuGet package and added a new NLog target in my NLog configuration file:

<target name='ai' xsi:type='ApplicationInsights' />

NLog throws an exception:

Target cannot be found: 'ApplicationInsights'

I also tried adding the assembly via extensions like so:

<extensions>
    <add assembly="Microsoft.ApplicationInsights.NLogTarget" />
</extensions>    

But it did not work either.

Any suggestions?


回答1:


Solution: (thanks to @nemesv for the tip)

Programmatically add the target with

ConfigurationItemFactory.Default.Targets.RegisterDefinition(
    "ApplicationInsightsTarget", 
    typeof(Microsoft.ApplicationInsights.NLogTarget.ApplicationInsightsTarget)
);

and use it with

<target name='ai' xsi:type='ApplicationInsightsTarget' />



回答2:


Or you can programmatically specify the target:

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;


来源:https://stackoverflow.com/questions/23369313/how-do-i-use-microsoft-application-insights-with-nlog-target-cannot-be-found

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!