log4j2指定不同包的输出级别

首先引入这几个包

        
        
            org.slf4j
            slf4j-api
            1.7.25
        

        







        
        
            org.apache.logging.log4j
            log4j-slf4j-impl
            2.11.1
        

        
        
            org.apache.logging.log4j
            log4j-core
            2.11.1
        

接着是配置文件log4j2.xml





    
        
        
            
            
        

        
        
            
        

        
        
            
                %d [%-5level][%t] %m (%C:%L) %n
            
            
                
                
            
            
        

        
        
            
            
        

    


    

        
        
            
            
            
        

        
            
            
        

        
        

        

    

这里是以Zookeeper和自己定义的MyLogger为例

public static Logger logger= LoggerFactory.getLogger("MyLogger");

分别配置控制台输出的级别和记录日志文件的级别,并且区分Zookeeper和MyLogger

此外关于几个level的关系:

            root level指定Appender的日志等级,root level会影响到上面logger的输出,当上面logger的日志级别低于root level时,
            就不会输出了,但是当root level低于上面的logger的日志级别时,将会按照上面的logger的level来输出

            总结一下:能影响到输出的有ThresholdFilter level,logger level, root level
            最终的输出级别是max{ThresholdFilter level,logger level, root level}
            eg:某个Appender的ThresholdFilter level为debug,引用该Appender的logger的level为info,全局的root level为trace,
            最终这个logger的输出级别就为三个level中最高的,即info

你可能感兴趣的:(java)