Search code examples
c#loggingnlogazure-devopsazure-application-insights

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


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?


Solution

  • 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' />