采用spring+mybatis的架构,日志选用log4j,想打印Sql语句到控制台调试一直打不出,网上一大堆配置实例,试了都没用,后面发现项目里有slf4j-api jar包。
问题原因:这个是Mybatis默认查找日志的顺序,自上而下,也就是说,如果项目中有前面3个日志框架时,对于Mybatis,log4j就不会生效
SLF4JApache Commons LoggingLog4j 2Log4jJDK logging
把 SLF4J包去掉后按mybatis官方配置就可以了,下面给出我自己的配置:
log4j.rootCategory=INFO, stdout
#xx.xx 是你自己的包
log4j.logger.xx.xx=TRACE
### 输出信息到控制抬 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yy-MM-dd HH:mm:ss,SSS} %t %-5p %c{1}[%LL] - %m%n
如果项目中一定要有slf4j包,那么可以在mybatis.xml配置文件中指定使用log4j:
<settings>
<setting name="logImpl" value="LOG4J" />
</settings>