log4net各种Filter使用

时间:2023-11-24 15:45:50
  1. log4net里面的filter类常用的为:
  2. 1、DenyAllFilter
  3. 拒绝所用的日志输出
  4. <filter type="log4net.Filter.LevelMatchFilter">
  5. <param name="LevelToMatch" value="DEBUG" />
  6. </filter>
  7. <filter type="log4net.Filter.DenyAllFilter" />
  8. 上面的配置是如果日志的输出级别不符合DEBUG要求的话,则不输出任何日志。
  9. 2、LevelMatchFilter
  10. 这个类里面有两个属性,一个是LevelToMatch这个属性是你要匹配输出日志的级别,比如:
  11. <filter type="log4net.Filter.LevelMatchFilter">
  12. <param name="LevelToMatch" value="DEBUG" />
  13. </filter>
  14. 这样的话,只有级别是DEBUG的日志才能输出。
  15. 另外这个类还有一个重要的属性就是AcceptOnMatch这个属性是设置如果这个条件匹配的话,是否接受输出打印,比如说:
  16. <filter type="log4net.Filter.LevelMatchFilter">
  17. <param name="LevelToMatch" value="DEBUG" />
  18. </filter>
  19. <filter type="log4net.Filter.StringMatchFilter">
  20. <param name="StringToMatch" value="debug" />
  21. </filter>
  22. 如果日志的级别为DEBVG的话,也就是说符合了第一个Filter的条件,日志就输出,则StringMatchFilter就不执行了。如果这样写的话,就会继续向下执行过滤:
  23. <filter type="log4net.Filter.LevelMatchFilter">
  24. <param name="LevelToMatch" value="DEBUG" />
  25. <AcceptOnMatch value="false"></AcceptOnMatch>
  26. </filter>
  27. <filter type="log4net.Filter.StringMatchFilter">
  28. <param name="StringToMatch" value="debug" />
  29. </filter>
  30. 如果这样写的话,即使第一个Filter符合了条件则第二个Filter也会继续执行。
  31. 3、LevelRangeFilter
  32. 配置文件是这样的:
  33. <filter type="log4net.Filter.LevelRangeFilter">
  34. <param name="LevelMin" value="DEBUG" />
  35. <param name="LevelMax" value="ERROR" />
  36. </filter>
  37. 4、LoggerMatchFilter
  38. 配置文件是这样的:
  39. <filter type="log4net.Filter.LoggerMatchFilter">
  40. <param name="LoggerToMatch" value="Client" />
  41. </filter>
  42. 5、StringMatchFilter
  43. 配置文件是这样的:
  44. <filter type="log4net.Filter.StringMatchFilter">
  45. <param name="StringToMatch" value="/blog/Client.Program" />
  46. </filter>

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