Log4net不写日志

时间:2017-01-19 08:04:26

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

我在使用城堡框架的asp.net系统中的日志文件有问题。日志文件未更新。这是一个自2011年以来的旧系统,我想是日志更新的最后日期是2013年。

还有另一个类似的基本代码使用相同的web配置可以写入日志文件,但在我将日志文件夹权限发送给所有人之后。我在旧系统的登台服务器上尝试了同样的事情,但仍然没有写入日志文件。在这里看了一些信息,但仍然找不到根本原因。

以下是代码:

<log4net>
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net">
  <param name="File" value="Logs\LogFile.log" />
  <param name="AppendToFile" value="true" />
  <param name="RollingStyle" value="Size" />
  <param name="MaxSizeRollBackups" value="10" />
  <param name="MaximumFileSize" value="10000KB" />
  <param name="StaticLogFileName" value="true" />
  <layout type="log4net.Layout.PatternLayout,log4net">
    <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}> - %m%n" />
  </layout>
  <layout type="log4net.Layout.PatternLayout">
    <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}>%n - %m%n" />
  </layout>
</appender>

希望有人能提供一些见解。

[UPDATE]

实际上,如上所述,Application_Start(如果它是asp.net)的功能。 log4net.Config.XmlConfigurator.Configure();但它被之前的开发者评论过。当我取消注释时,会出现一个新错误。

这是因为下面的代码:

try
        {
            SingleSignOnHelper<Staff> singleSignOnHelper = ServiceLocator.Current.GetInstance<SingleSignOnHelper<Staff>>();
            windowsAuthSucceeded = singleSignOnHelper.TryAuthenticateWithWindowsAuthentication(Context);
            loginPageUrl = singleSignOnHelper.LoginPageUrl;
        }
        catch (Exception ex)
        {
            if (m_log.IsErrorEnabled) m_log.Error("Error while trying to authenticate user using Windows authentication", ex);
            throw;
        }

        if (!windowsAuthSucceeded)
            Context.Response.Redirect(loginPageUrl);
    }
}

1 个答案:

答案 0 :(得分:3)

 void Application_Start(object sender, EventArgs e)
    {
        log4net.Config.XmlConfigurator.Configure();
}

你应该在Application_Start中调用一个函数(如果它是asp.net),就像上面一样。 log4net.Config.XmlConfigurator.Configure();