• 多级别过滤器


    <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 就是子类

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

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

  • 相关阅读:
    早晨突然想到的几句话
    VBA-工程-找不到工程或库-解决方案
    Mysql 服务无法启动 服务没有报告任何错误
    一道有趣的面试题
    异步和多线程
    异或运算
    线性代数解惑
    全文搜索引擎 Elasticsearch (一)
    HandlerExceptionResolver统一异常处理 返回JSON 和 ModelAndView
    MySQL 20个经典面试题
  • 原文地址:https://www.cnblogs.com/zno2/p/4800141.html
Copyright © 2020-2023  润新知