一、首先在使用log4net记录日志的时候,我们要引用log4net.dll文件

   二、在web.config中添加一下配置代码

 <configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4Net" />
</configSections>

接着添加一下配置代码:

 <!--站点日志配置部分-->
<log4net>
<!-- Define some output appenders -->
<!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->
<!-- Set root logger level to ERROR and its appenders -->
<root>
<level value="ERROR"/>
<appender-ref ref="ErrorAppender"/>
</root>
<!-- Print only messages of level DEBUG or above in the packages -->
<logger name="ErrorLogger">
<level value="ERROR"/>
</logger>
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender,log4net">
<!--文件保存的地址-->
<param name="File" value="App_Data/" />
<!--是否追加-->
<param name="AppendToFile" value="true"/>
<!--最大日志文件数量-->
<param name="MaxSizeRollBackups" value=""/>
<!--文件最大值-->
<param name="MaximumFileSize" value="2MB"/>
<!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
<param name="RollingStyle" value="Composite"/>
<param name="DatePattern" value="&quot;Logs_Error&quot;yyyyMMdd&quot;.txt&quot;"/>
<!--是否只写到一个文件中-->
<param name="StaticLogFileName" value="false"/>
<layout type="log4net.Layout.PatternLayout">
<!--输出格式-->
<!--%logger:错误的对象-->
<param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline%newline"/>
<param name="Header" value=" -------------------Error-header------------------- "/>
<param name="Footer" value=" -------------------Error-footer------------------- "/>
</layout>
</appender>
</log4net>

   三、创建一个记录异常的过滤器Log4ExceptionAttribute继承HandleErrorAttribute

public static Queue<Exception> Exceptions = new Queue<Exception>();
/// <summary>
/// 重写OnException方法来捕获异常数据
/// </summary>
/// <param name="filterContext"></param>
public override void OnException(ExceptionContext filterContext)
{
base.OnException(filterContext);
//捕获当前异常数据
var ex = filterContext.Exception;
//将异常数据入队
Exceptions.Enqueue(ex);
//跳转到错误页面
filterContext.HttpContext.Response.Redirect("http://www.baidu.com");
}

   四、在global.asax中添加一下代码

  log4net.Config.XmlConfigurator.Configure();
//开启一个线程,扫描异常信息队列.
var filePath = Server.MapPath("/Log/");
ThreadPool.QueueUserWorkItem((a) =>
{
while (true)
{
//判断队列中是否有数据
if (Log4ExceptionAttribute.Exceptions.Any())
{
//出队一条异常信息
var ex = Log4ExceptionAttribute.Exceptions.Dequeue();
//若异常信息不为空
if (ex == null) continue;
//将异常信息写入到日志文件中
var logger = LogManager.GetLogger("ErrorLogger");
logger.Error(ex.ToString());
}
else
{
//若异常信息队列为空,则线程休息三秒
Thread.Sleep();
}
}
}, filePath);

    最后找到App_Start下的FilterConfig过滤器把刚创建的异常过滤器添加进去

  public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
//filters.Add(new HandleErrorAttribute());
filters.Add(new Log4ExceptionAttribute());
}

.Net MVC4 log4net的配置的更多相关文章

  1. LOG4NET日志配置及使用

    Log4net的安装 Install-Package log4net 1.先弄个日志记录的类 /// <summary> /// 使用LOG4NET记录日志的功能,在WEB.CONFIG里 ...

  2. log4net的配置与使用

    log4net解决的问题是在.Net下提供一个记录日志的框架,它提供了向多种目标写入的实现,比如利用log4net可以方便地将日志信息记录到文件.控制台.Windows事件日志和数据库(包括MS SQ ...

  3. 将Log4net的配置配置到的独立文件中

    本文转载:http://blog.csdn.net/wanzhuan2010/article/details/7587780 另外一篇博客:http://grim1980.blog.sohu.com/ ...

  4. Log4Net 日志配置[附带源码]

    前述 园子里有许多人对log4net这款开源的日志记录控件有很多介绍.在这里个人再做一次总结,希望对以后有所帮助,需要的时候可以直接使用,减少查阅资料的时间.利用log4net可以方便地将日志信息记录 ...

  5. Log4Net详细配置

    关于Log4Net配置主要分几步 第一步:下载log4net.dll(log4net官网:http://logging.apache.org/log4net/download_log4net.cgi) ...

  6. 日志管理-将Log4net的配置配置到的独立文件中

    转自:http://www.cnblogs.com/zfanlong1314/p/3662679.html使用log4net已经很久了.但从来没有详情了解log4的参数,及具体使用方法.看了周公的博客 ...

  7. Log4net快速配置使用指南。(快速搭建log4net日志平台手册)

    每做一个新项目,都会用到log4net,但总是忘记如何快速配置.有时在网上搜半天也找不到好的模板,大都在介绍参数的使用,在此做下总结,争取下次用时仅10分钟就可搭建好log4net. 直接上介绍的步骤 ...

  8. C# log4net 的配置

    项目的日志组件是必备可少的,任何项目中都需要.这样既方便前期的开发测试也方便项目后期的项目维护.C#项目的一个不错的日志组件是log4net,下面我就把桌面应用程序.控制台程序.网站中log4net的 ...

  9. ASP.NET MVC4通过UrlRewriter配置伪静态,支持html后缀

    参考文章: ASP.NET MVC4通过UrlRewriter配置伪静态 http://blog.csdn.net/just_shunjian/article/details/51132866 .NE ...

随机推荐

  1. ES5-ES6-ES7_iterator和for of

    iterator(遍历器)的概念 JavaScript原有的表示“集合”的数据结构,主要是数组(Array)和对象(Object),ES6又添加了Map和Set.这样就有了四种数据集合,用户还可以组合 ...

  2. SpringMVC @ResponseBody 406

    使用@ResponseBody注解可以让Controller返回json格式的数据,在需要传输一个对象信息的时候往往使用这种方式.如果在使用的时候遇到了406,一般原因是: 缺少jar包.转换成jso ...

  3. java和maven环境变量设置,Tomcat部署

    Java环境变量设置 Win10我的电脑右击属性,高级系统设置,高级,环境变量设置 新建系统变量JAVA_HOME 和CLASSPATH  变量名:JAVA_HOME 变量值:C:\Program F ...

  4. VM虚拟机ubantu自适应屏幕大小

    1.菜单栏安装VMware-Tool sudo ./wmware-install.pl 2.sudo apt-get install open-vm-tools装完这两个就可以,有些人只安装了第一个, ...

  5. The authenticity of host 'ip (ip)' can't be established.

    问题 The authenticity of host '10.4.172.67 (10.4.172.67)' can't be established.ECDSA key fingerprint i ...

  6. GoldenGate OGG-01032 There Is a Problem in Network Communication Error in Writing to Rmt Remote Trail Rmttrail (Doc ID 1446621.1)

    GoldenGate OGG-01032 There Is a Problem in Network Communication Error in Writing to Rmt Remote Trai ...

  7. # 20175329 2018-2019-2 《Java程序设计》第一周学习总结

    教材学习内容总结 ·通过教材学习了如何安装JAVA ·在安装JAVA后对其环境变量的设置 ·第一次接触并手打出JAVA语言## 教材学习中的问题和解决过程- 问题1:在环境变量设置中不懂path cl ...

  8. Java NIO4:缓冲区Buffer(续)

    一.什么是缓冲区      一个缓冲区对象是固定数量的数据的容器,其作用是一个存储器,或者分段运输区,在这里数据可被存储并在之后用于检索.缓冲区像前篇文章讨论的那样被写满和释放,对于每个非布尔原始数据 ...

  9. shell笔记-常用

    shell提取文件名: http://blog.csdn.net/u011544778/article/details/50773053 一.使用${} 1.${var##*/}该命令的作用是去掉变量 ...

  10. oracle expdp导出时报 ora-39070:无法打开日志文件

    在通过expdp导出命令导出某个用户的对象时出现以下截图错误: ORA-39002:操作无效 ORA-39070:无法打开日志文件 ORA-39087:目录名<directory>无效 该 ...