读书人

logback logback.xml惯用配置详解(三

发布时间: 2012-08-28 12:37:01 作者: rapoo

logback logback.xml常用配置详解(三) <filter>

?

转载自:http://www.360doc.com/content/11/0915/11/1542811_148398374.shtml,谢谢作者的原文,仅供学习

?

<filter>:

过滤器,执行一个过滤器会有返回个枚举值,即DENY,NEUTRAL,ACCEPT其中之一。返回DENY,日志将立即被抛弃不再经过其他过滤器;返回NEUTRAL,有序列表里的下个过滤器过接着处理日志;返回ACCEPT,日志会被立即处理,不再经过剩余过滤器。

过滤器被添加到<Appender>?中,为<Appender>?添加一个或多个过滤器后,可以用任意条件对日志进行过滤。<Appender>?有多个过滤器时,按照配置顺序执行。

?

下面是几个常用的过滤器:

?

LevelFilter:?级别过滤器,根据日志级别进行过滤。如果日志级别等于配置级别,过滤器会根据onMath 和 onMismatch接收或拒绝日志。有以下子节点:

<level>:设置过滤级别

<onMatch>:用于配置符合过滤条件的操作

<onMismatch>:用于配置不符合过滤条件的操作

?

例如:将过滤器的日志级别配置为INFO,所有INFO级别的日志交给appender处理,非INFO级别的日志,被过滤掉。

Xml代码??logback logback.xml惯用配置详解(三) <filter&gt
  1. <configuration>???
  2. ??<appender?name="CONSOLE"?class="ch.qos.logback.core.ConsoleAppender">???
  3. ????<filter?class="ch.qos.logback.classic.filter.LevelFilter">???
  4. ??????<level>INFO</level>???
  5. ??????<onMatch>ACCEPT</onMatch>???
  6. ??????<onMismatch>DENY</onMismatch>???
  7. ????</filter>???
  8. ????<encoder>???
  9. ??????<pattern>???
  10. ????????%-4relative?[%thread]?%-5level?%logger{30}?-?%msg%n???
  11. ??????</pattern>???
  12. ????</encoder>???
  13. ??</appender>???
  14. ??<root?level="DEBUG">???
  15. ????<appender-ref?ref="CONSOLE"?/>???
  16. ??</root>???
  17. </configuration>??

?

ThresholdFilter:?临界值过滤器,过滤掉低于指定临界值的日志。当日志级别等于或高于临界值时,过滤器返回NEUTRAL;当日志级别低于临界值时,日志会被拒绝。

例如:过滤掉所有低于INFO级别的日志。

Xml代码??logback logback.xml惯用配置详解(三) <filter&gt
  1. <configuration>???
  2. ??<appender?name="CONSOLE"???
  3. ????class="ch.qos.logback.core.ConsoleAppender">???
  4. ????<!--?过滤掉?TRACE?和?DEBUG?级别的日志-->???
  5. ????<filter?class="ch.qos.logback.classic.filter.ThresholdFilter">???
  6. ??????<level>INFO</level>???
  7. ????</filter>???
  8. ????<encoder>???
  9. ??????<pattern>???
  10. ????????%-4relative?[%thread]?%-5level?%logger{30}?-?%msg%n???
  11. ??????</pattern>???
  12. ????</encoder>???
  13. ??</appender>???
  14. ??<root?level="DEBUG">???
  15. ????<appender-ref?ref="CONSOLE"?/>???
  16. ??</root>???
  17. </configuration>??

?

EvaluatorFilter:?求值过滤器,评估、鉴别日志是否符合指定条件。有一下子节点:

<evaluator>:

鉴别器,常用的鉴别器是JaninoEventEvaluato,也是默认的鉴别器,它以任意的java布尔值表达式作为求值条件,求值条件在配置文件解释过成功被动态编译,布尔值表达式返回true就表示符合过滤条件。evaluator有个子标签NameTypeDescriptioneventLoggingEvent与记录请求相关联的原始记录事件,下面所有变量都来自event,例如,event.getMessage()返回下面"message"相同的字符串throwableProxythrowableProxyIThrowableProxy与日志事件关联的异常代理。如果没有异常与日志事件关联,则变量"throwableProxy" 为 null. 当异常被关联到日志事件时,"throwableProxy" 在远程系统上不会为null

?

?

<onMatch>:用于配置符合过滤条件的操作

<onMismatch>:用于配置不符合过滤条件的操作

?

例如:过滤掉所有日志消息中不包含“billing”字符串的日志。

Xml代码??logback logback.xml惯用配置详解(三) <filter&gt
  1. <configuration>???
  2. ???
  3. ??<appender?name="STDOUT"?class="ch.qos.logback.core.ConsoleAppender">???
  4. ????<filter?class="ch.qos.logback.core.filter.EvaluatorFilter">?????????
  5. ??????<evaluator>?<!--?默认为?ch.qos.logback.classic.boolex.JaninoEventEvaluator?-->???
  6. ????????<expression>return?message.contains("billing");</expression>???
  7. ??????</evaluator>???
  8. ??????<OnMatch>ACCEPT?</OnMatch>??
  9. ??????<OnMismatch>DENY</OnMismatch>??
  10. ????</filter>???
  11. ????<encoder>???
  12. ??????<pattern>???
  13. ????????%-4relative?[%thread]?%-5level?%logger?-?%msg%n???
  14. ??????</pattern>???
  15. ????</encoder>???
  16. ??</appender>???
  17. ???
  18. ??<root?level="INFO">???
  19. ????<appender-ref?ref="STDOUT"?/>???
  20. ??</root>???
  21. </configuration>??

?

Xml代码??logback logback.xml惯用配置详解(三) <filter&gt

  1. <configuration?debug="true">???
  2. ???
  3. ??<appender?name="STDOUT"?class="ch.qos.logback.core.ConsoleAppender">???
  4. ????<filter?class="ch.qos.logback.core.filter.EvaluatorFilter">???
  5. ??????<evaluator>???????????
  6. ????????<matcher>???
  7. ??????????<Name>odd</Name>???
  8. ??????????<!--?filter?out?odd?numbered?statements?-->???
  9. ??????????<regex>statement?[13579]</regex>???
  10. ????????</matcher>???
  11. ???????????
  12. ????????<expression>odd.matches(formattedMessage)</expression>???
  13. ??????</evaluator>???
  14. ??????<OnMismatch>NEUTRAL</OnMismatch>???
  15. ??????<OnMatch>DENY</OnMatch>???
  16. ????</filter>???
  17. ????<encoder>???
  18. ??????<pattern>%-4relative?[%thread]?%-5level?%logger?-?%msg%n</pattern>???
  19. ????</encoder>???
  20. ??</appender>???
  21. ???
  22. ??<root?level="DEBUG">???
  23. ????<appender-ref?ref="STDOUT"?/>???
  24. ??</root>???
  25. </configuration>??

?

其他Filter不太常用我这里就不讲了,大家可以参见官网。

?

读书人网 >XML SOAP

热点推荐