Mybatis:关于日志输出到控制台问题问题
程序员文章站
2022-07-03 12:36:19
...
在使用Mybatis并且配置log4j文件后发现组合的sql语句并没有打印到控制台
原因:Mybatis支持的几种日志工具的使用有优先级
查看Mybatis的官方文档的logging模块,日志工具优先级如下:
- SLF4J
- Apache Commons Logging
- Log4j 2
- Log4j
- JDK logging
Mybatis会从上到下搜索日志工具,并把找到的第一个工具默认使用。
所以我们配置的log4j文件其实并没有用到。
解决办法:在Mybatis的配置文件(例如:mybatis-config文件)中添加setting配置选择日志文件
例:
<configuration>
<settings>
...
<setting name="logImpl" value="LOG4J"/>
...
</settings>
</configuration>
logImpl可选的值有:SLF4J、LOG4J、LOG4J2、JDK_LOGGING、COMMONS_LOGGING、STDOUT_LOGGING、NO_LOGGING 或者是实现了接口org.apache.ibatis.logging.Log的类的完全限定类名, 并且这个类的构造函数需要是以一个字符串(String类型)为参数的。 (可以参考org.apache.ibatis.logging.slf4j.Slf4jImpl.java的实现)
上一篇: php is_file 判断给定文件名是否为一个正常的文件
下一篇: 蓝桥杯 模拟除法