??Mybatis内置的日志工厂提供日志功能,具体的日志实现有以下几种方式:?
SLF4J
Apache Commons Logging
Log4j 2
Log4j
JDK logging?
具体选择哪个日志实现由MyBatis的内置日志工厂确定。它会使用最先找到的(按上文列举的顺序查找)。 如果一个都未找到,日志功能就会被禁用。
不少应用服务器的classpath中已经包含Commons Logging,如Tomcat和WebShpere, 所以MyBatis会把它作为具体的日志实现。
记住这点非常重要。这意味着,在诸如 WebSphere的环境中——WebSphere提供了Commons Logging的私有实现,你的Log4J配置将被忽略。
这种做法不免让人悲摧,MyBatis怎么能忽略你的配置呢?事实上,因Commons Logging已经存 在,按优先级Log4J自然就被忽略了!
解决办法:
在mybatis-config.xml配置文件中:
??
<configuration>
<settings>?
<!-- 让mybatis不使用自己的slf4j日志功能、使用log4j输出日志 -->
? ? ? ? <setting name="logImpl" value="LOG4J"/>?
?</settings>
</configuration>