logback.xml(过滤器)

本文深入解析了logback中的过滤器机制,包括LevelFilter级别过滤器和ThresholdFilter临界值过滤器的工作原理及配置方法。LevelFilter根据日志级别进行过滤,而ThresholdFilter则过滤掉低于指定临界值的日志。

https://blog.youkuaiyun.com/weixin_44779019/article/details/96506341
此篇详细解析logback中的filter
日志框架的主导思想:能够将日志进行分门别类

logback两种基本过滤器
  • <filter>常识
  • LevelFilter级别过滤器
  • ThresholdFilter 临界值过滤器

1. <filter>常识
过滤器,执行一个过滤器会有返回个枚举值,即DENY,NEUTRAL,ACCEPT其中之一。
返回DENY,日志将立即被抛弃不再经过其他过滤器;
返回NEUTRAL,有序列表里的下个过滤器过接着处理日志;
返回ACCEPT,日志会被立即处理,不再经过剩余过滤器。
过滤器被添加到 中,为 添加一个或多个过滤器后,可以用任意条件对日志进行过滤。 有多个过滤器时,按照配置顺序执行。

2. LevelFilter级别过滤器
根据日志级别进行过滤。如果日志级别等于配置级别,过滤器会根据onMath 和 onMismatch接收或拒绝日志。有以下子节点:
<level>:设置过滤级别
<onMatch>:用于配置符合过滤条件的操作
<onMismatch>:用于配置不符合过滤条件的操作
例:

  <appender name="fileLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--filter用于过滤信息-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <!--
        class:在此指定LevelFilter 级别过滤器
		 -->
            <level>ERROR</level>
            <!--级别类型:ERROR-->
            <onMatch>DENY</onMatch>
            <!--匹配==> DENY(抛弃且其他过滤器也不匹配)-->
            <onMismatch>ACCEPT</onMismatch>
            <!--未匹配==》ACCEPT(接送且不再被其他过滤器匹配)-->
        </filter>
<!--
	本人就此例简述:所以的日志信息只判断是否为ERROR级别,
	如果是ERROR级别就将该条日志信息从所有日志中踢除,
	如果某一日志不是ERROR级别,就将日志留下而后打印到特定的地方。
-->
        <encoder>
            <pattern>
               %d-%msg%n
            </pattern>
        </encoder>
        <!--TimeBasedRollingPolicy滚动策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--路径-->
            <fileNamePattern>D:\Documents\Desktop\日志文件夹\info.%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>
    </appender>

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

<appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--filter用于过滤信息-->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>ERROR</level>
        <!--
        由于ERROR级别日志为最高,因此只会打印留下ERROR级别的日志进行打印
        -->
        </filter>
        <encoder>
            <pattern>
                %msg%n
            </pattern>
        </encoder>
        <!--滚动策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--路径-->
            <fileNamePattern>D:\Documents\Desktop\日志文件夹\error.%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>
    </appender>

参考博客:https://blog.youkuaiyun.com/shuidingdang/article/details/77975314

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值