第一、在管理nuget程序包 =》下载 log4net 

 

第二、在web.config配置log4net

         1:在<configuration>节点下 <configsections>节点中 配置log4net节点引用。

<!–log4net日志记录–>
<section name=”log4net” type=”log4net.config.log4netconfigurationsectionhandler, log4net”/>

         

 

2:在<configsections>下后面 配置log4net 日志记录组件

<!–log4net 日志记录组建配置–>
<log4net>
<!–定义输出到文件中–>
<appender name=”rollingfiletracer” type=”log4net.appender.rollingfileappender”>
<!–定义文件存放位置–>
<file value=”app_data\\logerror\\”/>
<appendtofile value=”true”/>
<rollingstyle value=”date”/>
<datepattern value=”yyyy\\yyyymm\\yyyymmdd’.txt'”/>
<staticlogfilename value=”false”/>
<param name=”maxsizerollbackups” value=”100″/>
<layout type=”log4net.layout.patternlayout”>
<!–每条日志末尾的文字说明–>
<!–输出格式–>
<!–样例:2008-03-26 13:42:32,111 [10] info log4netdemo.mainclass [(null)] – info–>
<conversionpattern value=”%n记录时间:%date %n线程id:[%thread] %n日志级别: %-5level %n出错类:%logger property: [%property{ndc}] – %n错误描述:%message%newline %n”/>
</layout>
<filter type=”log4net.filter.levelrangefilter”>
<levelmin value=”error” />
<levelmax value=”fatal” />
</filter>
</appender>

<root>
<level value=”all”/>
<!–文件形式记录日志–>
<appender-ref ref=”rollinglogfileappender”/>
<appender-ref ref=”rollingfiletracer”/>
</root>
</log4net>

         

 

第三:在properties=>assembyinfo.cs中添加以下代码,来读取配置文件

//为项目注册log4net.config配置文件
[assembly: log4net.config.xmlconfigurator(configfile = @”web.config”, watch = true)]

 

第四:自定义一个exceptioncontrol类,继承 handleerrorattribute类 ,重写onexception方法

/// <summary>
/// 异常处理过滤器,使用log4net记录日志,并跳转至错误页面
/// </summary>
[attributeusage(attributetargets.method | attributetargets.class, inherited = true, allowmultiple = true)]
public class exceptioncontrol : handleerrorattribute
{
ilog log = logmanager.getlogger(typeof(exceptioncontrol));

public override void onexception(exceptioncontext filtercontext)
{
if (!filtercontext.exceptionhandled)
{
string message = string.format(“消息类型:{0}\r\n消息内容:{1}\r\n引发异常的方法:{2}\r\n引发异常源:{3}”
, filtercontext.exception.gettype().name
, filtercontext.exception.message
, filtercontext.exception.targetsite
, filtercontext.exception.source + filtercontext.exception.stacktrace
);

//记录日志
log.error(message);
//转向
filtercontext.exceptionhandled = true;
filtercontext.result = new redirectresult(“~/pageview/error/404.html”);//跳转错误页,地址根据自己的改
}
base.onexception(filtercontext);
}

}

 

第五:在app_start文件夹下的filterconfig.cs修改代码。 global.asax文件就不用修改了

 

to:经过以上5步就实现了asp.net mvc中使用log4net记录错误日志