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

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

  1. WebForm应用log4net记录错误日志——使用线程列队写入

    我的项目结构如下图: 日志帮助类库需要log4net包:工具—NuGet包管理器—管理解决方案NuGet程序包 线程日志帮助类 FlashLogger.cs 代码 using System; usin ...

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

    直接上代码示例:https://share.weiyun.com/aff36f2547514cfefe129ebb8ccb28ef 首先添加加log4net的dll,推荐用nuget.... 贴上配置 ...

  3. mvc项目用log4net 记录错误日志

    1.  首先下载lognet 下载地址 http://logging.apache.org/log4net/download_log4net.cgi 2.找到bin文件中的net文件夹  之后看你电脑 ...

  4. C#:MVC引用Log4Net生成错误日志

    第一步:引用log4net配置文件 第二步:在自己项目下新建文件夹LogNet,再在里面建立类Log.cs log.cs内容如下: 第三步:在自己项目下新建Log4Net.config Log4Net ...

  5. Log4Net 记录错误日志。

    点击进入推荐链接 1.先添加log4net.dll的引用.   2.在程序入口的地方(Gloabal文件)加上这句log4net.Config.XmlConfigurator.Configure(). ...

  6. 在ASP.NET MVC中使用Log4Net记录异常日志,出错时导向到静态页

    本篇体验在ASP.NET MVC 4中使用Log4Net记录日志. 通过NuGet安装Log4Net. 需求是:当出错时导向到Error.html静态页面,Log4Net记录错误信息. 大致的思路是: ...

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

    MVC中有一个处理异常的过滤器 HandleErrorAttribute 1.新建一个类继承自 HandleErrorAttribute,然后重写OnException这个方法 public clas ...

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

    MVC中有一个处理异常的过滤器 HandleErrorAttribute 1.新建一个类继承自 HandleErrorAttribute,然后重写OnException这个方法 public clas ...

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

    log4net在ASP.NET MVC中的配置,还有一种配置方式,即不在web.config中,而是单独新建一个log4net.config 在根目录下   第一.引用log4net.dll   第二 ...

随机推荐

  1. SQL 触发器 新建时删除相同数据

    --create alter trigger [dbo].[trigger_sqsj] on [dbo].[lctnrcrd] after INSERT as BEGIN ) id ),dlr,) d ...

  2. [小程序]微信小程序获取位置展示地图并标注信息

    1.map组件的高度如果想要铺满屏幕,要是使用height:100vh样式2.获取位置要在app.json中标明权限3.先使用wx.getLocation获取自己的位置,然后再回调中使用setData ...

  3. 安装教程-VMware 12 安装Ubuntu 19.04 桌面版

    VMware 12 安装Ubuntu 19.04 桌面版 1.实验描述 在虚拟机中,手动安装 Ubuntu 19.04 操作系统,为学习 Linux 桌面版提供平台,因此,有的参数有些差异,请勿较真. ...

  4. 学习10:Python重要知识

    Python易忽略知识 (1)print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end="": (2)isinstance 和 type 的区别在于:type()不 ...

  5. Codeforces Round #590 (Div. 3) F

    传送门 题意: 给出一个只含前\(20\)个字符的字符串,现在可以选择一段区间进行翻转,问区间中字符各不相同时,最长长度为多少. 思路: 首先,容易将题意转换为选择两个字符各不相同的区间,然后长度相加 ...

  6. 【入门篇一】SpringBoot简介(1)

    官网:https://spring.io/projects/spring-boot 一.什么是SpringBoot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新S ...

  7. 7 Exciting Uses of Machine Learning in FinTech

    https://rubygarage.org/blog/machine-learning-in-fintech Machine learning (ML) has moved from the per ...

  8. Emu8086三种格式的代码-(顺序,分支,循环)

    这个学期准备考研,于是就没有怎么听别的课,现在临近期末,汇编成了个难题.下面是我学校的实验报告 做一个复习的记录吧,下面的代码都是在Emu8086上运行出来的代码 下面先介绍一下,汇编里面的格式问题 ...

  9. SQL Server 迁移数据库 (二)分离和附加

    分离和附加其实比导入和导出,步骤要少一些,但是数据量大的话,跨服务器拷贝数据文件可能要慢一些 1. 分离数据库 这里最好选择断开链接,断开之前要确保你记得数据库的路径,一般默认都是C:\Program ...

  10. 不使用xftp上传/下载文件到linux

    yum install lrzsz    # 安装软件 window端上传到linux端: 1. window端先压缩需上传的文件 2. linux端运行命令rz 3. 在弹出的窗口选择压缩好的文件, ...