Log4Net出错后,日志文件变为空白

时间:2010-08-06 07:20:03

标签: asp.net-2.0 log4net logfiles

我想在我的asp.net应用程序中使用Log4Net&我做了以下事情:

在Web.Config文件中

<configSections>
  <section  name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections> 
<log4net>
  <logger name="File">
    <level value="All" />
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
      <param name="File" value="Logs\\Log4Net.log"/>
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/>
      </layout>
    </appender>
  </logger>
</log4net>

在Global.asax

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

<script runat="server">

void Application_Start(object sender, EventArgs e) 
{
    // Code that runs on application startup
    log4net.Config.XmlConfigurator.Configure();

}

和Page_load

try
{
    // There is no such Session, this is just to create error
    if (Session["userName"].ToString() == "Admin")
    {

    }
}
catch(Exception ex)
{
     log4net.ILog logger = log4net.LogManager.GetLogger("File");
}

我也在我的BIN文件夹中添加了引用。

当我运行我的代码时,我按照预期得到了错误,然后在我的解决方案资源管理器中使用日志文件创建了新文件夹。但是日志文件是空的。

我无法猜测它为什么会发生,是否无法跟踪或记录错误?

请帮忙。提前致谢。

1 个答案:

答案 0 :(得分:1)

正如leppie指出的那样,似乎没有任何代码可以写入日志消息。您的excpetion处理程序应该看起来像这样:

catch(Exception ex)
{
    log4net.ILog logger = log4net.LogManager.GetLogger("File");
    logger.Error("something went wrong", ex);
}

您发布的配置似乎也不完整。您需要log4net部分(参见example configurations)。