我正在尝试配置我的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
根据http://geekswithblogs.net/jakob/archive/2014/11/09/using-log4net-for-application-insights.aspx,我在web.config中有以下内容
<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>
4 回答
尝试安装Log4Net Appender的PreRelease版本 .
我按照步骤created by someone else创建了一个规范的ASP.NET MVC示例,并且上面遇到了同样的问题 . 但后来跟着写了一些步骤in the Application Insights documentation并发现那些指定为log4net appender安装PreRelease包 . 完成它后它工作:)
您的log4net配置是正确的;我在测试网站上使用它并且它有效 . 此外,由于您在Fiddler中看到了其他AI数据,因此您的AI也已正确配置 . 在这种情况下要寻找的一件事是log4net.Config.XmlConfigurator属性 . 它是一个程序集级属性,可能需要正确读取log4net配置 .
您能否确保在项目中指定它并再试一次?
我在Sitecore网站上将我的Log4Net日志发送到AI时遇到了一些问题 . Sitecore有自己的Log4Net实现,所以它不适用于AI Nuget包 . 我已经制作了自己的Apprender,我将日志发送给AI .
在sitecore.config中:
在我的情况下(我已经将Application Insights添加到现有的Web应用程序中)除了
Microsoft.ApplicationInsights.Log4NetAppender
之外,我不得不使用NuGet添加Microsoft.ApplicationInsights.Web
包 . 在创建ApplicationInsights.config
之后,您需要指定您的InstrumentationKey .例如 . ApplicationInsights.config的