项目logback日志组件更换为log4j2日志组件步骤及注意事项

1.将项目当前maven中的logback相关依赖exclude掉

 


	
		logback-access
		ch.qos.logback
	
	
		logback-core
		ch.qos.logback
	
	
		logback-classic
		ch.qos.logback
	

 

2.添加log4j的maven依赖

 



	org.apache.logging.log4j
	log4j-core
	2.3



	com.lmax
	disruptor
	3.2.1

 

3.在classpath下添加log4j2.xml配置文件

 



	
	
		%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %X{user.username} %X{req.requestURI} %X{req.queryString} %l - %msg%n
		%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %X{user.username} %X{req.requestURI} %X{req.queryString} %l - %msg%n
		/home/myt/log/billing-mall
	
	
	
		





		
		
		
            
        
        
        
		
			
			
				
			
			
		
	
	
		  
	      
	      
	      
	      
	
		


			
		
	
	

 

4.项目全文查找(logback模式导入的包)

 

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

全部替换为:(log4j 2模式导入的包)

import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;

PS: (log4j 1模式导入的包)
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;

 

5.在应用服务器tomcat中增加启动参数:

 

JAVA_OPTS="-DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector"

(PS:这里如果加了启动参数,那么在maven依赖中需要添加disruptor的jar包依赖且版本需要3.0以上)

 

6.注意事项:

 

  在启动项目的时候如果应用下面有logback相关的jar包,如logback-classic-1.1.2.jar,logback-core-1.1.2.jar,必须要全部删除掉,否则logback会和log4j冲突并强制将tomcat应用服务器的控制台日志级别降到最低,如果项目本身与spring+hibernate等框架集成的话会打印大量没用的日志,从而造成系统性能大大降低。

你可能感兴趣的:(log4j2)