如何在NLog中使用Microsoft Application Insights(无法找到目标:'ApplicationInsights')

时间:2014-04-29 15:43:44

标签: c# logging nlog azure-devops azure-application-insights

我正在使用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>    

但它也没有用。

有什么建议吗?

2 个答案:

答案 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;
相关问题