SpringBoot+mybatis整合log4j.properties进行日志打印

1.引入jar包,同时移除Springboot-web-starter中的内置记录器。

2.在mybatis的配置文件里面开启log4j,如果不指定,mybatis会按slf4j->apache commons logging->log4j2->log4j->jdk logging的顺序寻找日志配置。

<settings>
	
	    <setting name="log4jImpl" value="LOG4J"/>
</settings>

3.编写日志输出文件,在main/resources目录下新建log4j.properties,可以直接在网上找

#控制日志级别,在哪里输出Output pattern : date [thread] priority category - message   FATAL 0  ERROR 3  WARN 4  INFO 6  DEBUG 7 
log4j.rootLogger=INFO, stdout

#控制台  显示的的方式为控制台普通方式
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#日志输出的格式
log4j.appender.stdout.layout.ConversionPattern=%d %-5p [%c{5}] - %m%n

#打印sql部分
log4j.logger.java.sql=DEBUG
log4j.logger.java.sql.Connection = DEBUG  
log4j.logger.java.sql.Statement = DEBUG  
log4j.logger.java.sql.PreparedStatement = DEBUG  
log4j.logger.java.sql.ResultSet = DEBUG


log4j.logger.com.liantong=DEBUG

注意这一句,只要添加了这一句,就不用在需要扫描的类配置logger来记录日志,而是,凡是在该包下执行的任何sql语句都会被打印出来。

4.运行测试结果

5.遇到的问题-----sql无法打印

我的目的是让mybatis中的任何sql语句被执行时,都能在控制台打印出来,然而刚开始只打印项目启动信息,sql根本不打印,总结原因如下
i. 没有移除springboot-starter-web中内置的日志记录器
ii. 没有在mybatis的配置文件中添加 <setting name="logImpl" value="LOG4J" />
iii.sql的扫描级别高于debug
iv. 没有添加log4j.logger.com.liantong=DEBUG
展开阅读全文

没有更多推荐了,返回首页