Log4net没有写入日志文件

时间:2016-01-30 14:57:46

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

我已经设置了log4net,如下所示,但它没有写入文件。我已经使用Breakpoint运行应用程序来检查异常但是没有抛出异常。请帮忙 的web.config

    <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
  <log4net>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="C:\\Users\\yperez\\Desktop\\Demos\\AvatarPasswordReset\\mylogfile.txt" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="5" />
      <maximumFileSize value="10MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %level %logger - %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="INFO" />
      <appender-ref ref="FileApender" />
    </root>
  </log4net>

Global.asax中

<%@ Application Language="C#" %>

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

}
//More empty methods below

Default.aspx的

using log4net;
//Other using statements
[assembly:log4net.Config.XmlConfigurator(Watch = true)]
public partial class _Default : System.Web.UI.Page{
//More code and methods...
  public void AppendToLog(string new_password, string user_named_changed, string sent)
{
    try
    {
        string date = DateTime.Now.ToString();
        string PCUser = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
        string a = String.Format("|{0}|{1}|{2}|{3}|{4}", date, PCUser, user_named_changed, new_password, sent);

        ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
        logger.Info(a + "\r\n");
    }
    catch (Exception exc) { logger_status = exc.ToString(); }

}

1 个答案:

答案 0 :(得分:2)

需要指定正确的appender引用。它设置为FileAppender。应该是RollingFileAppender。

<root>
      <level value="INFO" />
      <appender-ref ref="RollingFileAppender" />
</root>

另请注意,您可以使用.InfoFormat而不是单独的string.Format()调用。