使用MyBatis,結合log4j想在控制檯打印出控制信息,結果INFO級別的都不打印,而error級別的卻可以。
MyBatis內置的日誌工廠提供日誌功能,具體的日誌實現有以下幾種工具:
SLF4J
Apache Commons Logging
Log4J 2
log4J
JDK logging
具體的選擇哪一一個日誌的實現工具由MyBatis的內置日誌工廠來確定。他會使用最先找到的(按照上面那個
順序找),如果一個都沒有找到,日誌功能就會被禁用。
但是,不幸的是,在不少的服務裏面已經包含了Commons Logging了,按照上面的那個順序,
我們的Log4j自然而然就被MyBatis忽略了。
但是,MyBatis也提供瞭解決方法,我們可以在MyBatis的配置文件中來設置我們需要使用的
日誌(即指定)
下面我們來看一個配置樣例:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="jdbc.properties"/>
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/fjnu/mapper/CustomerMapper.xml"/>
</mappers>
</configuration>
這裏配置的核心在於:
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
(注意這段配置的寫的位置!)
這樣,就可以使用log4j來使用了,可以看到在控制檯打印出來的日誌信息。
附上詳細的log4j配置信息:
依賴:
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
log4j2.properties:
log4j.rootLogger=DEBUG,stdout
log4j.logger.org.mybatis=DEBUG
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p %d %c: %m%n