log4net各种Filter使用【转】

log4net里面的filter类常用的为: 
    1、DenyAllFilter 
       拒绝所用的日志输出 
       <filter type="log4net.Filter.LevelMatchFilter"> 
           <param name="LevelToMatch" value="DEBUG" />       
       </filter> 
       <filter type="log4net.Filter.DenyAllFilter" /> 
       上面的配置是如果日志的输出级别不符合DEBUG要求的话,则不输出任何日志。 
    2、LevelMatchFilter 
       这个类里面有两个属性,一个是LevelToMatch这个属性是你要匹配输出日志的级别,比如: 
        <filter type="log4net.Filter.LevelMatchFilter"> 
           <param name="LevelToMatch" value="DEBUG" />       
        </filter> 
       这样的话,只有级别是DEBUG的日志才能输出。 
       另外这个类还有一个重要的属性就是AcceptOnMatch这个属性是设置如果这个条件匹配的话,是否接受输出打印,比如说: 
        <filter type="log4net.Filter.LevelMatchFilter"> 
           <param name="LevelToMatch" value="DEBUG" />       
        </filter> 
        <filter type="log4net.Filter.StringMatchFilter"> 
           <param name="StringToMatch" value="debug" />       
        </filter> 
       如果日志的级别为DEBVG的话,也就是说符合了第一个Filter的条件,日志就输出,则StringMatchFilter就不执行了。如果这样写的话,就会继续向下执行过滤: 
        <filter type="log4net.Filter.LevelMatchFilter"> 
           <param name="LevelToMatch" value="DEBUG" />   
           <AcceptOnMatch value="false"></AcceptOnMatch>    
        </filter> 
        <filter type="log4net.Filter.StringMatchFilter"> 
           <param name="StringToMatch" value="debug" />       
        </filter> 
       如果这样写的话,即使第一个Filter符合了条件则第二个Filter也会继续执行。 
    3、LevelRangeFilter 
       配置文件是这样的: 
        <filter type="log4net.Filter.LevelRangeFilter"> 
            <param name="LevelMin" value="DEBUG" /> 
            <param name="LevelMax" value="ERROR" /> 
        </filter> 
    4、LoggerMatchFilter 
       配置文件是这样的: 
        <filter type="log4net.Filter.LoggerMatchFilter"> 
            <param name="LoggerToMatch" value="Client" /> 
        </filter> 
    5、StringMatchFilter 
       配置文件是这样的: 
        <filter type="log4net.Filter.StringMatchFilter"> 
            <param name="StringToMatch" value="/blog/Client.Program" /> 
        </filter>

level定义记录的日志级别,就是说,你要记录哪个级别以上的日志,级别由低往高依次是:
ALL
DEBUG
INFO
WARN
ERROR
FATAL
None
说明:有的博客中写的是INFO的比DEBUG的低,可是进过我的亲自测验,还是INFO的比DEBUG的要高

log4net各种Filter使用【转】的更多相关文章

  1. log4net各种Filter使用

    log4net里面的filter类常用的为: 1.DenyAllFilter 拒绝所用的日志输出 <filter type="log4net.Filter.LevelMatchFilt ...

  2. 【改进】用Log4net建立日志记录

    上一篇随笔中只使用了普通的文件读写来进行日志的写入,正如很多朋友说的,频繁的对文件进行读写会造成很多的问题,代码缺少边界控制和操作控制,没有对资源进行管理,是非常典型的bad code. 然后经过前辈 ...

  3. django 操作数据库--orm(object relation mapping)---models

    思想 django为使用一种新的方式,即:关系对象映射(Object Relational Mapping,简称ORM). PHP:activerecord Java:Hibernate C#:Ent ...

  4. MVC扩展Filter,通过继承HandleErrorAttribute,使用log4net或ELMAH组件记录服务端500错误、HttpException、Ajax异常等

    □ 接口 public interface IExceptionFilter{    void OnException(ExceptionContext filterContext);} Except ...

  5. Log4net - 规则简介

    参考页面: http://www.yuanjiaocheng.net/CSharp/csharprumenshili.html http://www.yuanjiaocheng.net/entity/ ...

  6. Log4net - 项目使用的一个简单Demo

    参考页面: http://www.yuanjiaocheng.net/entity/entitytypes.html http://www.yuanjiaocheng.net/entity/entit ...

  7. log4net使用手册

    1. log4net简介 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.Java平台下,它还 ...

  8. quartz定时+log4net日志+exchangeservice发邮件

    main using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sys ...

  9. .NET WebAPI 用ExceptionFilterAttribute实现错误(异常)日志的记录(log4net做写库操作)

    好吧,还是那个社区APP,非管理系统,用户行为日志感觉不是很必要的,但是,错误日志咱还是得记录则个.总不能上线后报bug了让自己手足无措吧,虽然不管有木有错误日志报bug都是件很头疼的事... 我们知 ...

随机推荐

  1. Jackson将json字符串转换成泛型List

    Jackson,我感觉是在Java与Json之间相互转换的最快速的框架,当然Google的Gson也很不错,但是参照网上有人的性能测试,看起来还是Jackson比较快一点 Jackson处理一般的Ja ...

  2. Jackson轻易转换JSON

    原文http://www.cnblogs.com/hoojo/archive/2011/04/22/2024628.html Jackson可以轻松的将Java对象转换成json对象和xml文档,同样 ...

  3. Useful commmands in Gentoo

    Safe way to upgrade: emerge --sync & eix-sync emerge -avuDN --with-bdeps y --keep-going world et ...

  4. Struts与Struts2的区别

    Struts与Struts2的区别 首先看一张Struts2的发展路线图:       从Struts2的发展过程来看,Struts2继承了Struts与Webwork的特性,形成了新的框架.但是它的 ...

  5. EF6 DataMigration 从入门到进阶

    引言 在EntityFramework的开发过程中我们有时因需求变化或者数据结构设计的变化经常会改动表结构.但数据库Schema发生变化时EF会要求我们做DataMigration 和UpdateDa ...

  6. (转)浅析Java中的访问权限控制

    原文地址: http://www.cnblogs.com/dolphin0520/p/3734915.html 今天我们来一起了解一下Java语言中的访问权限控制.在讨论访问权限控制之前,先来讨论一下 ...

  7. hbase-site.xml中HBASE_CLASSPATH 的设置

    http://www.dataguru.cn/thread-95064-1-1.html

  8. one to many

    @OneToMany(mappedBy="order",fetch=FetchType.EAGER,cascade={CascadeType.ALL})    private Li ...

  9. java多线程系类:JUC线程池:01之线程池架构

    概要 前面分别介绍了"Java多线程基础"."JUC原子类"和"JUC锁".本章介绍JUC的最后一部分的内容--线程池.内容包括:线程池架构 ...

  10. 十分钟轻松让你认识ASP.NET MVC6

    这篇文章说明下如何在普通编辑器下面开发mvc6应用程序. 上篇文章: 十分钟轻松让你认识ASP.NET 5(MVC6) 首先安装mvc6的nuget包: 可以看到在project.json文件中添加了 ...