多级别过滤器

<configuration>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder
            by default -->
        <encoder>
            <pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
            </pattern>
        </encoder>
    </appender>

    <logger name="cn.zno" level="WARN" />

    <root level="INFO">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

1. <logger name="cn.zno" level="WARN" />

作用是配置Logger类,在调用.trace .debug 等信息时进行拦截

class TestLogback {
    private final Logger logger = LoggerFactory.getLogger(getClass());

    public void printLog() {
        logger.trace("It is trace");
        logger.debug("It is debug");
        logger.info("It is info");
        logger.warn("It is warn");
        logger.error("It is error");
    }

}

依据以下代码 位于ch.qos.logback.classic.Logger.class :

if (effectiveLevelInt > level.levelInt) {
        return;
      }

effectiveLevelInt 可能的值是 5000 、10000 、20000 、30000 、40000

分别对应5个级别:               trace 、debug 、info 、warn 、error

<logger name="cn.zno" level="WARN" /> 比如 WARN 值为30000 ,大于info debug trace ,则只会输出 warn error

2.  <root level="" />

只能有一个root ,可被多个 appender 继承,可以影响effectiveLevelInt 的值,以<logger 为主

如果把<root 视为 父类,那么 <logger 就是子类

如果子类没有指定该值,则以父类为准

如果子类指定了该值,则以子类为准

时间: 2024-07-29 21:11:28

多级别过滤器的相关文章

单级别过滤器

<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"> ...//省略代码 <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMat

Java设计模型应用——过滤器模式

storm引擎计算出一批中间告警结果,会发送一条kafka消息给告警入库服务,告警入库服务接收到kafka消息后读取中间告警文件,经过一系列处理后把最终告警存入mysql中. 实际上,中间告警结果可能有重复告警.错误告警.无用告警,告警入库服务会过滤,压缩中间告警,把用户关心的告警存入数据库.过滤的步骤较多,并且客户关心的告警可能会随时变化,写死的告警过滤很快就无法满足应用场景,这种场景下使用过滤器模式则很好满足业务上的不确定性欲扩展性. 告警入库服务涉及消息过滤和告警过滤,下面我们以消息过滤器

关于logback日志级别的配置

logback如果需要灵活的配置日志级别,需要结合过滤器,<filter></fiter>这个标签.需要注意的是,过滤器过滤的基础是在root标签的配置基础上进行的. 过滤器可以写在appender标签内,可以写一个或多个,顺序执行.过滤器会对每个级别的日志设置枚举值,表示对日志的处理方式. DENY:日志将立即被抛弃不再经过其他过滤器: NEUTRAL:有序列表里的下个过滤器过接着处理日志:(该级别既不处理,也不抛弃,相当于没有任何处理,日志会被保存下来并在本appender被执

java日志框架系列(9):logback框架过滤器(filter)详解

过滤器放在了logback-classic模块中. 1.logback-classic模块中过滤器 分类(2种):常规过滤器.TurboFilter过滤器. 1.常规过滤器 常规过滤器可以通过自定义进行条件筛选过滤. 目前logback-classic中有2个常规过滤器:级别过滤器(LevelFilter).临界值过滤器(ThresholdFilter).在logback-core中还有一个求值过滤器(EvaluatorFilter). 1.自定义过滤器 创建自定义过滤器很容易,只需要继承Fil

logback备注

<?xmlversion="1.0"encoding="UTF-8"?> <!-- <configuration>包含的属性 scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true. scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒.当scan为true时,此属性生效.默认的时间间隔为1分钟. debug: 当此属性设置为true时,将打印出logb

logback logback.xml常用配置详解(三) &lt;filter&gt;

转自:logback logback.xml常用配置详解(三) <filter> logback 常用配置详解(三) <filter> <filter>: 过滤器,执行一个过滤器会有返回个枚举值,即DENY,NEUTRAL,ACCEPT其中之一.返回DENY,日志将立即被抛弃不再经过其他过滤器:返回NEUTRAL,有序列表里的下个过滤器过接着处理日志:返回ACCEPT,日志会被立即处理,不再经过剩余过滤器. 过滤器被添加到<Appender> 中,为<

Logback相关知识汇总

例如:%-4relative 表示,将输出从程序启动到创建日志记录的时间 进行左对齐 且最小宽度为4格式修饰符,与转换符共同使用:可选的格式修饰符位于“%”和转换符之间.第一个可选修饰符是左对齐 标志,符号是减号“-”:接着是可选的最小宽度 修饰符,用十进制数表示.如果字符小于最小宽度,则左填充或右填充,默认是左填充(即右对齐),填充符为空格.如果字符大于最小宽度,字符永远不会被截断.最大宽度 修饰符,符号是点号"."后面加十进制数.如果字符大于最大宽度,则从前面截断.点符号“.”后面

【Log】logback的配置和使用

logback介绍 Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core,logback- classic和logback-access.logback-core是其它两个模块的基础模块.logback-classic是log4j的一个 改良版本.此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging.logback-access访问模块与Servlet

segments&amp;cache

Segments 执行效果 命令  在 sense 里边执行  GET /abcd/_segments  前边的是索引名称,后边是请求 段信息 说明  索引是面向分片的,是由于索引是由一个或多个分片(以及它的副本)构成,每个分片就是一个物理上的Lucene索引 返回 名词解释 已提交索引段:指那些已经执行了提交命令的段,意味着已经提交到磁盘持久化并且是只读的: 可查询索引段:可供查询使用的索引段: 索引的代:告诉我们索引有多“老”,起初创建的索引段的代为0,接着是1,依次继续: 被标记为已删除的