zoukankan      html  css  js  c++  java
  • 多级别过滤器

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

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

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

  • 相关阅读:
    学无止境,我爱python
    Flask目录
    Django目录
    前端目录
    python目录
    MySQL目录
    Oracle与Sql server的区别
    Git
    restful规范
    Django 解决跨域问题(写入到中间件中)
  • 原文地址:https://www.cnblogs.com/zno2/p/4800141.html
Copyright © 2011-2022 走看看