配置说明




   
    myApp1 contextName
   
   

   
   
    
   
   
   
       
       
       
            debug
       


       
       
       
           
           
           
            %-4d [%thread] %highlight%-5level %cyan%logger.%-10method - %message%n
       

   

    
   
   
       
        ${USER_HOME}/myApp1log-${bySecond}.log
        
       
           
            %date %level [%thread] %logger{30} [%file:%line] %msg%n
       

   

    
   
   
       
       
            debug
            ACCEPT
            DENY
       


       
           
           
                %relative%thread%mdc%level%logger%msg
           

       

        ${USER_HOME}/test.html
   


   
   
       
        true
       
       
       
           
            ${USER_HOME}/logFile.%d{yyyy-MM-dd}_%i.log
           
            30
            
           
           
               
               
                10KB
           

       


       
           
            %-4date [%thread] %-5level %logger{35} - %msg%n%ex{full, DISPLAY_EX_EVAL}
       

   


   
   
   
       
       
       
       
   

   
   
       
       
       
   


   
   
   
   
       
   

场景说明


第1种:只配置root

Xml代码  

  1.    

  2.    

  3.      

  4.        

  5.        

  6.       %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n   

  7.        

  8.      

  9.    

  10.                

  11.        

  12.        

  13.      

  14.    

  其中appender的配置表示打印到控制台(稍后详细讲解appender );

将root的打印级别设置为“INFO”,指定了名字为“STDOUT”的appender。


当执行logback.LogbackDemo类的main方法时,root将级别为“INFO”及大于“INFO”的日志信息交给已经配置好的名为“STDOUT”的appender处理,“STDOUT”appender将信息打印到控制台;

打印结果如下:

 

Xml代码  

  1. 13:30:38.484 [main] INFO  logback.LogbackDemo - ======info  

  2. 13:30:38.500 [main] WARN  logback.LogbackDemo - ======warn  

  3. 13:30:38.500 [main] ERROR logback.LogbackDemo - ======error 


第2种:带有loger的配置,不指定级别,不指定appender

 

Xml代码  

  1.    

  2.    

  3.      

  4.        

  5.        

  6.       %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n   

  7.        

  8.      

  9.    

  10.      

  11.      

  12.    

  13.                

  14.        

  15.        

  16.      

  17.    

 

 其中appender的配置表示打印到控制台(稍后详细讲解appender );

将控制logback包下的所有类的日志的打印,但是并没用设置打印级别,所以继承他的上级的日志级别“DEBUG”;

没有设置addtivity,默认为true,将此loger的打印信息向上级传递;

没有设置appender,此loger本身不打印任何信息。

将root的打印级别设置为“DEBUG”,指定了名字为“STDOUT”的appender。

 

当执行logback.LogbackDemo类的main方法时,因为LogbackDemo 在包logback中,所以首先执行,将级别为“DEBUG”及大于“DEBUG”的日志信息传递给root,本身并不打印;

root接到下级传递的信息,交给已经配置好的名为“STDOUT”的appender处理,“STDOUT”appender将信息打印到控制台;

打印结果如下:

 

Xml代码  

  1. 13:19:15.406 [main] DEBUG logback.LogbackDemo - ======debug  

  2. 13:19:15.406 [main] INFO  logback.LogbackDemo - ======info  

  3. 13:19:15.406 [main] WARN  logback.LogbackDemo - ======warn  

  4. 13:19:15.406 [main] ERROR logback.LogbackDemo - ======error  

 

 

 第3种:带有多个loger的配置,指定级别,指定appender  

 

Xml代码  

  1.    

  2.       

  3.        

  4.        

  5.       %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n   

  6.        

  7.      

  8.    

  9.      

  10.      

  11.      

  12.     

  13.       

  14.      

  15.     

  16.                

  17.        

  18.        

  19.   

 

其中appender的配置表示打印到控制台(稍后详细讲解appender );

 

将控制logback包下的所有类的日志的打印,但是并没用设置打印级别,所以继承他的上级的日志级别“DEBUG”;

没有设置addtivity,默认为true,将此loger的打印信息向上级传递;

没有设置appender,此loger本身不打印任何信息。

 

 控制logback.LogbackDemo类的日志打印,打印级别为“INFO”;

additivity属性为false,表示此loger的打印信息不再向上级传递,

指定了名字为“STDOUT”的appender。

 

将root的打印级别设置为“ERROR”,指定了名字为“STDOUT”的appender。

 

 当执行logback.LogbackDemo类的main方法时,先执行,将级别为“INFO”及大于“INFO”的日志信息交给此loger指定的名为“STDOUT”的 appender处理,在控制台中打出日志,不再向次loger的上级 传递打印信息;

未接到任何打印信息,当然也不会给它的上级root传递任何打印信息;

打印结果如下:  

 

Xml代码  

  1. 14:05:35.937 [main] INFO  logback.LogbackDemo - ======info  

  2. 14:05:35.937 [main] WARN  logback.LogbackDemo - ======warn  

  3. 14:05:35.937 [main] ERROR logback.LogbackDemo - ======error  

 

 如果将修改为 那打印结果将是什么呢?

没错,日志打印了两次,想必大家都知道原因了,因为打印信息向上级传递,logger本身打印一次,root接到后又打印一次

打印结果如下:  

 

Xml代码  

  1. 14:09:01.531 [main] INFO  logback.LogbackDemo - ======info  

  2. 14:09:01.531 [main] INFO  logback.LogbackDemo - ======info  

  3. 14:09:01.531 [main] WARN  logback.LogbackDemo - ======warn  

  4. 14:09:01.531 [main] WARN  logback.LogbackDemo - ======warn  

  5. 14:09:01.531 [main] ERROR logback.LogbackDemo - ======error  

  6. 14:09:01.531 [main] ERROR logback.LogbackDemo - ======error  

说明

logger会继承父logger的appender,此时level还是当前logger的级别,不会受父logger中level级别的影响。当additivity为false时中断集成关系。