spring+mybatis+druid集成log4j2

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

log4j2是log4j的替代产品,log4j2支持异步读写,在日志的读写性能上有很大的提高。相应的也就提高了系统的吞吐量。log4j没有更新了,已经被抛弃,所以在新的项目中完全可以抛弃log4j,然后采用log4j2或者logback作为日志实现方案。

本文主要是记录log4j2与目前常采用的Spring+Spring MVC+Mybatis+druid架构的web项目环境的集成。关于log4j2的新特性和功能,请参考官网或者参阅他人博客。

第一步:引入log4j2相关依赖

2.8.1



 
 
     org.apache.logging.log4j
     log4j-core
     ${log4j2.version}
 
 
      org.apache.logging.log4j
      log4j-jcl
      ${log4j2.version}
 
 
      org.apache.logging.log4j
      log4j-slf4j-impl
      ${log4j2.version}
 
 
 
      com.lmax
      disruptor
      3.3.6
 

如果不需要使用log4j2的异步logger则无需引入disruptor的依赖,在项目实现中,为了不造成系统强依赖于某一个log实现 框架,项目统一采用slf4j做为日志接口。

第二步:修改mybatis的log实现

在实际项目总都大致写个mybatis-config.xml的配置文件,我们需要将里面的logImpl的实现改成log4j2

文件内容如下:




	
	    
		
		
        
        
        
	
	
    
    	
    	
    

第三步:配置druid数据连接池filter

druid配置片段如下:

    
    
        
        
        
        

        
        
        
        

        
        

        
        

        
        

        
        
        
        

        
        
        

        
        
    

第四步:创建log4j2.xml配置文件

log4j2.xml配置文件需要放到maven项目的resource下,log4j2.xml的配置文件如下:



    
        logs/
    
    

        
            
        

        
            
            
                
            
            
                
                
            
            
        
    
    

        
        
            
            
        
        
            
            
        
        
            
            
        
        
            
            
        
        
            
            
        
        
            
            
        
        
        
            
        
    

日志文件中配置,将logger都配置成了Async异步logger,如果想要同步日志,则将AsyncLogger改写成logger,如果需要使用json格式输出则可以配置log4j2出处json


     

总结

整合的其实只有几步,但是需要注意几点:

(1) mybatis的版本必须至少到3.2.8,否则是无法在mybatis中使用log4j2的

(2) druid的版本虽然没有具体测试过最低版本是那个,但是大概的最低版本是1.0.23或者是1.0.24。因为以前我在使用druid的时候是不能直接配置log4j2的,在2016年初的时候我在githup上反馈过,后来发布新版本才可以直接使用log4j2

(3) 如果使用的web环境是servlet 2.x,则还需log4j2的web过滤器和监听器配置到web.xml中,然后引入log4j2的web模块,因此建议新的项目都是用servlet3.0减少不必要的配置

转载于:https://my.oschina.net/u/1760791/blog/888785

你可能感兴趣的:(spring+mybatis+druid集成log4j2)