繁体   English   中英

带有Log4Net的Azure AppInsight

[英]Azure AppInsight with Log4Net

我一直在尝试使用Log4Net而不是默认api Telemetry客户端在Azure AppInsights中编写日志(跟踪,信息和异常)。 当我从VS2013运行应用程序时,既没有收到任何错误消息,也没有看到Azure门户中的日志。

请帮我弄清楚这个问题。

注意:我正在将Log4net追加程序用于AppIinsights。 Web.Config中

 <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>

MVC控制器

public class HomeController : Controller
{

    private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

    public ActionResult Index()
    {
        //Trace.TraceInformation("Home accessed at : {0}", DateTime.UtcNow);
        Log.Info(string.Format("Home accessed at : {0}", DateTime.UtcNow));
        return View();
    }
}

问候,拉贾兰。

如果您没有看到任何 log4net输出,则我想您缺少一些log4net启动代码,如下所示:

log4net.Config.XmlConfigurator.Configure();

您可能希望在某个地方的启动类/代码中使用它。 否则,log4net将无法读取web.config中的配置。

除了来自@JohnGardner的答案外,您还可以按以下方式在您的AssemblyInfo.cs文件中添加一行:-

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

在以下问题中将对这两种方法进行更多讨论:-

在Web应用程序中配置Log4Net

在讨论的某个地方的评论中,有一个指向log4net FAQ的链接,其中涉及“我什么时候应该记录第一条消息?”问题中的区别:-

https://logging.apache.org/log4net/release/faq.html#first-log

我发现这两个都对我有进一步的用途。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM