Logback的Filters详解

前言:并不是懂很多,只是官网的搬运工
参考资料: http://logback.qos.ch/manual/filters.html

概念讲解

我们在讲之前需要了解几个概念
DENY,NEUTRAL和ACCEPT
这三个值是通过调用Filter的decide()方法的返回值。(如果需要实现自己的Filter,也是需要实现Filter的decide()方法的,这个一会说明).
如果返回值为DENY,那么此日志将会被放弃并且不会被剩余的过滤器考虑。
如果返回值为NEUTRAL,那么将会经过下一个过滤器。如果没有了其他的过滤器,那么日志事件会被正常处理
如果返回值为ACCEPT,那么将会立即处理日志,并且跳过后续的过滤器(如果有的话)

过滤器

常规过滤器
1、LevelFilter

LevelFilter根据精确的级别匹配过滤事件。如果事件的级别等于已配置的级别,则过滤器将接受或拒绝事件,具体取决于onMatch和onMismatch属性的配置。比如

<configuration>
  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <level>INFO</level>
      <onMatch>ACCEPT</onMatch>
      <onMismatch>DENY</onMismatch>
    </filter>
    <encoder>
      <pattern>
        %-4relative [%thread] %-5level %logger{30} - %msg%n
      </pattern>
    </encoder>
  </appender>
  <root level="DEBUG">
    <appender-ref ref="CONSOLE" />
  </root>
</configuration>
2、ThresholdFilter

该过滤器过滤低于指定阈值的事件。对于等于或高于阈值的事件,响应为NEUTRAL 即交给后续过滤器处理,如果没有则正常处理日志事件。级别低于阈值的事件将被拒绝。比如

<configuration>
  <appender name="CONSOLE"
    class="ch.qos.logback.core.ConsoleAppender">
    <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
      <level>INFO</level>
    </filter>
    <encoder>
      <pattern>
        %-4relative [%thread] %-5level %logger{30} - %msg%n
      </pattern>
    </encoder>
  </appender>
  <root level="DEBUG">
    <appender-ref ref="CONSOLE" />
  </root>
</configuration>
自定义过滤器

实现自定义过滤器很容易。要做的就是扩展Filter抽象类并实现该 decide()方法。

总结

看到官网还有很多种,这里不一一说明。只列举几种常用的,如果后续有更复杂的日志管理在补后续。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值