直接上代码示例:https://share.weiyun.com/aff36f2547514cfefe129ebb8ccb28ef

首先添加加log4net的dll,推荐用nuget....

贴上配置文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration><configSections><section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4Net" /></configSections><!--日志的配置开始--><log4net debug="true"><root><level value="ALL" /><appender-ref ref="SysAppender" /><appender-ref ref="AdoNetAppender" /></root><logger name="WebLogger"><!--配置日志的级别,低于此级别的就不写到日志里面去--><level value="DEBUG" /></logger><appender name="SysAppender" type="log4net.Appender.RollingFileAppender,log4net"><param name="File" value="App_Data/" /><param name="AppendToFile" value="true" /><param name="RollingStyle" value="Date" /><param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.htm&quot;" /><param name="StaticLogFileName" value="false" /><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="&lt;HR COLOR=red&gt;%n异常时间:%d [%t] &lt;BR&gt;%n异常级别:%-5p &lt;BR&gt;%n异 常 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;" /><!--<conversionPattern value="%newline %n记录时间:%date %newline %n 线程ID:[%thread] %n日志级别:  %-5level %n跟踪描述:%message%newline %n"/>--></layout></appender><appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender"><bufferSize value="1" /><connectionType value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data, Version=6.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /><connectionString value="server=localhost;port=3306;database=jianzheng;uid=root;pwd=svse;" /><commandText value="INSERT INTO `TestSysLog` (`Date`, `Thread`, `Level`, `Logger`, `Method`, `Location`,`Message`, `Exception`) VALUES (@Date, @Thread, @Level, @Logger, @Method,@Location,@Message, @Exception)" /><parameter><parameterName value="@Date" /><dbType value="DateTime" /><layout type="log4net.Layout.RawTimeStampLayout" /></parameter><parameter><parameterName value="@Thread" /><dbType value="String" /><size value="255" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%thread" /></layout></parameter><parameter><parameterName value="@Level" /><dbType value="String" /><size value="255" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%level" /></layout></parameter><parameter><parameterName value="@Logger" /><dbType value="String" /><size value="255" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%logger" /></layout></parameter><parameter><parameterName value="@Method" /><dbType value="String" /><size value="255" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%method" /></layout></parameter><parameter><parameterName value="@Location" /><dbType value="String" /><size value="1023" /><layout type="log4net.Layout.PatternLayout" ><conversionPattern value="%location" /></layout></parameter><parameter><parameterName value="@Message" /><dbType value="String" /><size value="4000" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%message" /></layout></parameter><parameter><parameterName value="@Exception" /><dbType value="String" /><size value="8000" /><layout type="log4net.Layout.ExceptionLayout" /></parameter></appender></log4net><!--日志的配置结束--></configuration>本demo里是新建的一个xml文件。在网站根目录新建如图:

把xml配置内容copy进去,在Global.asax的Application_Start()中加入下面的一句 //读取日志  如果使用log4net,应用程序一开始的时候,都要进行初始化配置 log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("config\\log4net.config"));在AssemblyInfo.cs里加入[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Config\\log4net.config", Watch = false)]
AssemblyInfo.cs的位置在如图:

然后添加一个过滤器
 public class MyExceptionFileAttribute : HandleErrorAttribute{public override void OnException(ExceptionContext filterContext){base.OnException(filterContext);//处理错误消息,将其跳转到一个页面LogHelper.WriteLog(filterContext.Exception.ToString());//页面跳转到错误页面filterContext.HttpContext.Response.Redirect("/Error.html");}}

还要建一个工具类,用来写日志。

 public class LogHelper{public static void WriteLog(string txt){ILog log = LogManager.GetLogger("log4netlogger");log.Error(txt);}}

最后还要在

FilterConfig.cs中加入全局过滤器 //注册错误过滤器  public static void RegisterGlobalFilters(GlobalFilterCollection filters)        {            filters.Add(new HandleErrorAttribute());            //注册错误过滤器            filters.Add(new MyExceptionFileAttribute());        }默认把错误日志存在app_data中,为htm文件。存到mysql数据库中了数据库结构如图:

注意:Mysql.Data与Connector版本都要是6.8.3才能成功。其他版本需要自行测试了

connectionType:见:http://www.cnblogs.com/gaocong/p/4699103.html

asp.net mvc中加入log4net记录错误日志相关推荐

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

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

  2. asp.net Web项目中使用Log4Net进行错误日志记录

    使用log4net可以很方便地为应用添加日志功能.应用Log4net,开发者可以很精确地控制日志信息的输出,减少了多余信息,提高了日志记录性能.同时,通过外部配置文件,用户可以不用重新编译程序就能改变 ...

  3. asp.net core中使用log4net

    和之前的ASP.NET MVC中的使用LOG4NET的方法有些不同,这里先记录一下,使用步骤如下 : 1. 建立 ASP.NET CORE项目中,NUGET中搜索log4net后下载安装 2. 根目录 ...

  4. ASP.NET MVC中的身份验证

    传统的登录验证方式,是通过将用户的登录状态信息保存在服务端的Session中,再利用客户端浏览器的Cookie保存SessionID,这样浏览器每次在向服务端发起请求时,都会携带该Cookie值,服务 ...

  5. 在Asp.Net MVC中实现RequiredIf标签对Model中的属性进行验证

    在Asp.Net MVC中可以用继承ValidationAttribute的方式,自定制实现RequiredIf标签对Model中的属性进行验证 具体场景为:某一属性是否允许为null的验证,要根据另 ...

  6. ASP.NET MVC中你必须知道的13个扩展点

         ScottGu在其最新的博文中推荐了Simone Chiaretta的文章13 ASP.NET MVC extensibility points you have to know,该文章为我 ...

  7. Asp.net mvc中的Ajax处理

    在Asp.net MVC中的使用Ajax, 可以使用通用的Jquery提供的ajax方法,也可以使用MVC中的AjaxHelper. 这篇文章不对具体如何使用做详细说明,只对于在使用Ajax中的一些需 ...

  8. 在 ASP.NET MVC 中使用 Chart 控件

    在 .NET 3.5 的时候,微软就提供了一个 Chart 控件,网络上有大量的关于在 VS2008 中使用这个控件的文章,在 VS2010 中,这个控件已经被集成到 ASP.NET 4.0 中,可以 ...

  9. 如何在 ASP.NET MVC 中集成 AngularJS(3)

    今天来为大家介绍如何在 ASP.NET MVC 中集成 AngularJS 的最后一部分内容. 调试路由表 - HTML 缓存清除 就在我以为示例应用程序完成之后,我意识到,我必须提供两个版本的路由表 ...

最新文章

  1. split()的使用
  2. Python中多层List展平为一层
  3. 配置实验室计算机步骤,计算机网络实验指导书(new)
  4. 专访小米欧阳辰:深度揭秘小米广告平台的构建、底层模块和坑
  5. Oracle 11gR2 使用 RMAN duplicate from active database 复制数据库
  6. 机器学习笔记(十):机器学习系统的设计
  7. Springboot将mybatis替换为mybatis-plus
  8. 跨域问题_跨域问题如何解决?
  9. JavaScript中的六种错误类型
  10. 浅谈HTML页面基本结构
  11. winedt103系统找不到指定文件_latex排版入门(winEdit系统找不到指定文件的解决办法)...
  12. spring(一)依赖注入与 SPEL
  13. 经典BBS语录2007贺岁版
  14. xp系统怎么创建新宽带连接服务器地址,XP宽带连接怎么创建?
  15. h5唤起app,清除timeout
  16. Nginx 代理缓存
  17. 瞬时转速 matlab,基于瞬时转速的发动机故障诊断研究
  18. 老旧笔记本安装(升级)黑群晖7.1
  19. Java设计模式-单一职责原则
  20. python多层遍历批量转换PPT为PDF

热门文章

  1. 3403: [Usaco2009 Open]Cow Line 直线上的牛
  2. Silverlight开发之MVVM模式
  3. 用户 sa 登录失败。_Sqlserver2008R2特定用户只能查看管理指定的数据库
  4. python123用户登录的三次机会_用户登录三次机会(PYTHON)
  5. android 获取uri的正确文件路径的办法
  6. studying and learning
  7. 策略模式实现支持多种类数据库的DBHelp
  8. js三大系列之二scroll
  9. spellChecker 拼写检查
  10. App性能测试-GT