logback-logger和root

一、root和logger

用来设置某一个包或者具体某一个类的日志打印级别、以及指定appender。可以包含零个或者多个元素,标识这个appender将会添加到这个logger。
也是元素,但它是根logger,只有一个level属性,因为它的name就是ROOT

接下来我们来讲解一下logger和root的使用

情景

logback配置

   
        
        
    
    
    
    
           
           
     

我们可以看到demo1的level设置为debug,demo2的level为warn,而root的level为info
controller

@Controller
public class demo1 {
    private static final Logger logger = LoggerFactory.getLogger(demo1.class);

    @RequestMapping("demo1")
    @ResponseBody
    public String logBack(){
        logger.debug("demo1:logback debug");
        logger.info("demo1:logback info");
        return "ok";
    }
}


@Controller
public class demo2 {
    private static final Logger logger = LoggerFactory.getLogger(demo2.class);

    @RequestMapping("demo2")
    @ResponseBody
    public String logBack(){
        logger.info("demo2:logback run");
        logger.debug("demo2:logback info");
        logger.warn("demo2:logback warn");
        return "ok";
    }
}

访问demo1
在这里插入图片描述
可以看到同一个信息打印了两次,因为demo1的level是debug,所以debug和info级别的信息都能·打印,又因为logger和root都有appender,所以同一信息打印了两次。
访问demo2
在这里插入图片描述
访问demo2只打印了一条信息,因为demo2的level为warn,所以不会打印debug和info级别的信息,只会打印warn级别的信息,又因为demo2的logger没有配置appender,所以使用root的appender打印一次。

情景二

  
  
    
    
           
           
     

我们将demo1的appender也取消了,验证看是否demo1的日志信息也只打印一次
在这里插入图片描述
验证成功,结论正确

你可能感兴趣的:(springboot,日志框架,java,日志,logback,root和logger)