如何配置Log4Net以忽略404错误?

时间:2011-04-06 16:14:20

标签: asp.net logging exception-handling log4net

Http 404错误阻塞了我的日志文件。确实,我需要解决404错误,但这样做本身就是一项任务。我将使用像Fiddler这样的工具来追捕404,但我不希望它们被记录下来。

1 个答案:

答案 0 :(得分:2)

将404作为System.Web.HttpException的实例抛出。如果你在global.asax中捕获/记录异常,那么这样的事情应该可以解决问题:

protected void Application_Error( object sender , EventArgs e )
{
  Exception     exceptionInstance = Server.GetLastError() ;
  HttpException httpException     = exceptionInstance as HttpException ;
  int?          httpStatusCode    = ( httpException != null ? httpException.GetHttpCode() : (int?)null ) ;

  if ( !httpStatusCode.HasValue || httpStatusCode != 404 )
  {
    LogExceptionHere() ;
  }

  return ;

}

如果您正在使用Elmah(以及should be),则需要将其配置为忽略web.config中的404。这些方面的东西:

<configuration>
  ...
  <elmah>
    ...
    <errorFilter>
      <test>
        <equal binding="HttpStatusCode" value="404" type="Int32" />
      </test>
    </errorFilter>
    ...
  </elmah>
  ...
</configuration>