<filter>:
过滤器,执行一个过滤器会返回个枚举值,即DENY,NEUTRAL,ACCEPT。返回DENY,日志将被抛弃不再经过其他过滤器,返回NEUTRAL,有序列表中的下个过滤器会接着处理日志;返回ACCEPT,日志会立即被处理,不再经过剩余的过滤器。此节点被添加到<appender>,可以有一个或者多个,顺序执行。
下面是几个常用的过滤器:
LevelFilter:级别过滤器,根据日志级别进行过滤,过滤器会根据onMath和onMismatch接受或者拒绝日志。
<level>:设置过滤级别
<onMatch>:用于配置符合过滤条件的日志的操作
<onMismatch>:用于配置不符合过滤条件的日志的操作
例如下面代码,日志级别为INFO,所有INFO级别的日志交给appender处理,非INFO级别的,被过滤掉
<appender name="A" class="ch.qos.logback.core.ConsoleAppender">
<span style="white-space:pre"> </span><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>
ThresholdFilter:临界值过滤器,过滤掉低于指定临界值的日志。当日止界别等于或者高于临界值时,返回NEUTRAL;当日志级别低于临界值时会被拒绝
例如下面配置,过滤掉多余低于INFO的日志
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
过滤器在我的项目中不经常使用,这里不再过多的描述,具体可参考官方文档。