mybatis log4j2打印sql+日志实例代码

前言

将采用slf+log4j2方式进行打印日志,以下用两种方式,一种基于maven的springboot2,一种jdk6,普通jar包的springmvc

基于maven的springboot

第一步、由于前阵子java8可对应的log4j漏洞问题,公司要求log4j升级到2.17.1,因此需要把springboot自带的log4j进行排除引入高版本。


2.17.1

 
		
		
			org.apache.logging.log4j
			log4j-api
			${log4j2.version}
		
		
			org.apache.logging.log4j
			log4j-slf4j-impl
			${log4j2.version}
		
		
			org.apache.logging.log4j
			log4j-core
			${log4j2.version}
		
		
			org.springframework.boot
			spring-boot-starter
			
				
					org.springframework.boot
					spring-boot-starter-logging
				
			
		
		
			org.springframework.boot
			spring-boot-starter-log4j2
			
				
					org.apache.logging.log4j
					log4j-slf4j-impl
				
				
					org.apache.logging.log4j
					log4j-core
				
				
					org.apache.logging.log4j
					log4j-api
				
			
		

第二步 log4j.xml

以下patternLayout做了对邮件、手机号、身份证号敏感数据转码**



  
    
      

        
      
    
    
      
        %d{ISO8601}|%level|%thread|%c{1.}|%L|%msg%n
      
      
        
        
      
    
  
  
    
      
    
    
      
    
    
      
    
    
      
    
  

第三步 输出sql的mapper接口包,写在*.properties,放置在resource下

#debug log 自己项目的包,写dao接口的位置
logging.level.com.company.pm.mapper=debug

重新启动即可,sql日志就会出来,如果想自己logger出来,用slf即可

Logger logger = LoggerFactory.getLogger(getClass());
logger.debug("[email protected]");

第二种 jdk6,普通jar包的springmvc

spring3 + mybatis3

jdk6建议log4j版本为2.3.2(官方因漏洞推荐),引入以下个jar包

log4j-slf4j-impl-2.3.2.jar、log4j-core-2.3.2.jar、log4j-api-2.3.2.jar、slf-api-1.7.25.jar、log4j-slf-impl-2.3.2.jar

mybatis log4j2打印sql+日志实例代码_第1张图片

mybatis log4j2打印sql+日志实例代码_第2张图片

由于不是maven项目,只是普通的mvc结构,因此我在src下建了两个文件log4j2.xml(有些是resource,这个项目前期没有这个,反正最后打包后在class下面就是了)

 log4j2.xml,不知道,为啥在jdk6以及版本log4j2.3.2里面为何pattern不能写多个replace,因此我只排除了邮箱敏感信息



  
    
      
 
        

 
      
    
  
  
    
      
    
    
      
    
    
      
    
    
      
    
    
      
    
    
      
    
  

mybatis-config.xml


	
		
		
		.....
	

application-context.cml


	
		
		
		.....
	

这里jdk6 slf+ log4j2有个坑点,我不知道为何log4j.properties与log4j.xml不能同时存在

测试类

Logger logger = LoggerFactory.getLogger(getClass());
		logger.debug("[email protected]");

总结

到此这篇关于mybatis log4j2打印sql日志的文章就介绍到这了,更多相关mybatis log4j2打印日志内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

你可能感兴趣的:(mybatis log4j2打印sql+日志实例代码)