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的要高