【问题标题】:Log4Net logging error just onceLog4Net 仅记录一次错误
【发布时间】:2014-11-15 13:25:31
【问题描述】:

我正在尝试在 asp.net MVC5 c# 中使用 log4net 记录错误。

出于测试目的,我在 application_start 中配置了 log4net,并从家庭控制器初始化记录器和记录错误。出于某种原因,log4net 仅在我启动应用程序时第一次记录错误。当我离开家庭控制器并再次回到家庭控制器时,没有记录任何错误。我已将日志记录代码放入 HomeController 索引中。使用断点调试时,可以访问日志记录代码,但不会记录日志。

我错过了什么吗?

这是我的 log4net 配置。

  1. 将 Global.asax Application_Start() 中的 log4net 配置为

    log4net.Config.XmlConfigurator.Configure();
    
  2. 在我的家庭控制器索引(用于测试)中,我将错误记录为

    var logger = log4net.LogManager.GetLogger(this.GetType());
    Random rnd = new Random();
    int rndint = rnd.Next(52);
    
    logger.Error(rndint.ToString());
    
  3. 我的配置文件使用标准 log4net AdoNetAppender,缓冲区大小=100,级别设置为 WARN

【问题讨论】:

    标签: c# asp.net asp.net-mvc log4net


    【解决方案1】:

    AdoNetAppender 批处理插入数据库的日志语句。如果将缓冲区大小设置为 1,您将看到日志语句立即添加到表中。

    最好的做法是使用1 的缓冲区大小进行本地开发,如果需要考虑性能并且使用大量日志记录,则在部署到生产环境时使用更大的值。

    【讨论】:

    • 就是这样。非常感谢。今天早上我一直在敲我的头。
    猜你喜欢
    • 2010-10-07
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多