0

我想在我的 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 文件夹中添加了参考。

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

我不知道它为什么会发生,它无法跟踪或记录错误吗?

请帮忙。提前致谢。

4

1 回答 1

1

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

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

您发布的配置似乎也不完整。您需要一个log4net部分(参见示例配置)。

于 2010-08-06T07:28:08.633 回答