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

第一、在管理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记录错误日志

原文地址:https://www.cnblogs.com/xmkd/p/10984437.html

时间: 2024-10-19 11:49:24

ASP.NET MVC中Log4Net记录错误日志的使用的相关文章

asp.net mvc中加入log4net记录错误日志

首先添加加log4net的dll,推荐用nuget.... 贴上配置文件 <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4Net&q

ASP.NET MVC中错误日志信息记录

MVC中有一个处理异常的过滤器 HandleErrorAttribute 1.新建一个类继承自 HandleErrorAttribute,然后重写OnException这个方法 public class MyExceptionAttribute:HandleErrorAttribute { /// <summary> /// 可捕获异常数据 /// </summary> /// <param name="filterContext"></par

【转】ASP.NET MVC中错误日志信息记录

MVC中有一个处理异常的过滤器 HandleErrorAttribute 1.新建一个类继承自 HandleErrorAttribute,然后重写OnException这个方法 public class MyExceptionAttribute:HandleErrorAttribute { /// <summary> /// 可捕获异常数据 /// </summary> /// <param name="filterContext"></par

asp.net MVC自定义错误页,并记录错误日志

只需要在Global.asax文件中添加以下代码,则可以在出错后友好的展示错误页,也不需要在很多地方写记录错误日志的代码 protected void Application_Error(object sender, EventArgs e) { if (HttpContext.Current.IsCustomErrorEnabled) { return; } var exception = Server.GetLastError(); var httpException = new HttpE

log4net 使用总结- (2)在ASP.NET MVC 中使用

log4net在ASP.NET MVC中的配置,还有一种配置方式,即不在web.config中,而是单独新建一个log4net.config 在根目录下 第一.引用log4net.dll 第二.在站点根目录下增加log4net.config <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="

点滴积累【C#】---使用log4net组件记录错误日志(以文本形式记录)

效果: 描述: 利用log4net组件进行错误日志的记录,log4net记录错误的方式我所了解的有4种,No.1 文本形式记录日志,No.2存储到数据库形式记录日志,No.3控制台控制显示日志,No.4Windows事件日志.本文所采用的是第一种形式------文本形式记录日志. 首先,引用log4net.dll文件,然后创建一个config文件,进行配置日志的相关信息,比如:配置路径,以及错误的显示形式等.然后创建一个Global.asax应用程序文件,用于第一次访问时执行配置文件.然后创建一

log4net 使用总结- (1)在ASP.NET MVC 中使用

1. 去官网下载log4net.dll,增加引用到站点下(你也可以通过nuget 安装) http://logging.apache.org/log4net/download_log4net.cgi 2. 在Web.config中增加配置(这里按日志文件输出) <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, lo

asp.net MVC中使用Html.Checkbox提示该字符串未被识别为有效的布尔值错误的解决方法

在asp.net MVC中使用Html.CheckBox提交后出现该字符串未被识别为有效的布尔值错误,或从类型“System.String”到类型“System.Boolean”的参数转换失败. 错误例子:@Html.CheckBox("UserID",item.IsTrue,new{value=item.UserID}) 这是由于MVC会在页面上生成<input id="UserID" name="UserID" value="

ASP.NET MVC中的错误处理

ASP.NET MVC中的错误的错误处理跨越了两个主要领域:程序异常和路由异常的处理.前者是关于在控制器和视图中捕获错误的;而后者更多是有关重定向和HTTP错误的. 1.在WebConfig中把过滤器配置启动 <customErrors mode="On"> </customErrors> 控制器的代码报错时,会跳转到~/Views/Shared/Error.cshtml页面.mode="Off"页面不会跳转直接显示错误信息. 2.绑定异常过