Mybatis使用log4j無法在控制檯輸出日誌信息

使用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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章