带有Application Insights的Log4Net

BMa*_*Mac 27 c# asp.net log4net azure azure-application-insights

我正在尝试配置我的azure asp.net网站,以将log4net跟踪发送到Azure Application Insights.我可以在我的azure控制台页面视图等中看到,因此我知道它工作正常.我还可以看到log4net跟踪,当配置文件处理程序时,但在配置log4net以使用应用程序洞察处理程序时,我看不到任何log4net条目出现在应用程序洞察仪表板中,在构建或运行时没有错误或警告 - 只是仪表板中没有结果.我查看了Fiddler中的网络流量,我可以看到将页面视图数据等发送到应用程序洞察,但不是log4net跟踪流量因此我怀疑这是一个配置问题.

另外我在我的主项目中尝试了TelemetryClient(),我在仪表板中看到了tracetraffic.但是,这不适合我的用例,因为TelemetryClient似乎还不支持非asp.net dll(即我的业务和数据逻辑在单独的dll中).

有人提供任何见解或建议吗?

我已经为Microsoft.ApplicationInsights.Log4NetAppender.dll安装了nuget包,我正在使用Microsoft.ApplicationInsights.0.13.2-build00132

我在web.config中有以下内容,根据https://blog.ehn.nu/2014/11/using-log4net-for-application-insights/

<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
  <log4net>
    <root>
      <level value="ALL"/>
      <appender-ref ref="aiAppender"/>
    </root>
    <appender name="aiAppender" type="Microsoft.ApplicationInsights.Log4NetAppender.ApplicationInsightsAppender, Microsoft.ApplicationInsights.Log4NetAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%message%newline"/>
      </layout>
    </appender>
  </log4net>
<configuration>
Run Code Online (Sandbox Code Playgroud)

Phi*_*hil 5

尝试安装Log4Net Appender的 PreRelease 版本。

我按照其他人创建的步骤(archive.org backup)创建了一个规范的 ASP.NET MVC 示例,并且遇到了上述相同的问题。但随后按照Application Insights 文档中编写的一些步骤进行操作,发现那些指定为 log4net 附加程序安装 PreRelease 包的步骤。完成后,它起作用了:)


小智 2

您的 log4net 配置正确;我已经在测试网站中使用了它并且它有效。此外,由于您在 Fiddler 中看到了其他 AI 数据,因此您的 AI 也已正确配置。在这种情况下要查找的一件事是 log4net.Config.XmlConfigurator 属性。它是程序集级别的属性,可能需要正确读取 log4net 配置。

[assembly: log4net.Config.XmlConfigurator(Watch = true)]
Run Code Online (Sandbox Code Playgroud)

您能否确保在您的项目中指定了它,然后重试?