欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP.NET MVC中Log4Net记录错误日志的使用

程序员文章站 2022-03-06 22:39:51
第一、在管理NuGet程序包 =》下载 Log4Net 第二、在web.config配置Log4Net 1:在节点下 节点中 配置log4Net节点引用。

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

ASP.NET MVC中Log4Net记录错误日志的使用

 

第二、在web.config配置log4net

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

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

ASP.NET MVC中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>

         ASP.NET MVC中Log4Net记录错误日志的使用

 

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

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

ASP.NET MVC中Log4Net记录错误日志的使用

 

第四:自定义一个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);
}

}

ASP.NET MVC中Log4Net记录错误日志的使用

 

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

ASP.NET MVC中Log4Net记录错误日志的使用

 

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

 

ASP.NET MVC中Log4Net记录错误日志的使用

ASP.NET MVC中Log4Net记录错误日志的使用