背景:在對mybatis的mapper接口進(jìn)行調(diào)試時,希望能夠打印執(zhí)行的sql語句
查閱mybatis官方文檔關(guān)于Logging的一節(jié),可以知道m(xù)ybatis支持多個日志框架:
Mybatis 內(nèi)置的日志工廠提供日志功能,具體的日志實現(xiàn)有以下幾種方式:
? SLF4J
? Apache Commons Logging
? Log4J
? JDK logging
具體選擇哪個日志實現(xiàn)由 MyBatis 的內(nèi)置日志工廠確定。它會使用最先找到的(按上文列舉的順序查
找)。 如果一個都未找到,日志功能就會被禁用。
關(guān)注2點:支持類型和優(yōu)先級,比如應(yīng)用的classpath種有Commons Loggin時,會忽略Log4J的配置,這時候需要調(diào)用(根據(jù)需要使用的日志框架)下面的某個方法:
org.apache.ibatis.logging.LogFactory.useSlf4jLogging();
org.apache.ibatis.logging.LogFactory.useLog4JLogging();
org.apache.ibatis.logging.LogFactory.useJdkLogging();
org.apache.ibatis.logging.LogFactory.useCommonsLogging();
org.apache.ibatis.logging.LogFactory.useStdOutLogging
同時mybatis提供了配置的方式去解決優(yōu)先級的問題,如果需要使用Log4J框架,可以在mybatis的配置文件的settings節(jié)點下中增加如下配置:
<setting name="logImpl" value="LOG4J"></setting>
logImpl的有效值:

上面是官方文檔對mybatis的Logging介紹,下面是實際的操作步驟:
1.首先你需要下載log4j的jar包并將其放在項目的lib目錄下,如果是maven項目,直接pom中增加對log4j的依賴即可
2.增加log4j配置文件log4j.xml到classpath目錄下

3.log4j.xml中需要有控制臺輸出的appender配置:
<!-- 輸出日志到控制臺 ConsoleAppender -->
<appender name="STDOUT"
class="org.apache.log4j.ConsoleAppender">
<param name="Threshold" value="debug"></param>
<layout class="org.apache.log4j.TTCCLayout">
<param name="ConversionPattern" value="TTCCLayout"></param>
</layout>
</appender>
2.增加需要記錄日志的mapper類對應(yīng)logger配置:
<logger name="dnsdatabase.db.mapper.TrecordMapper">
<level value="debug"></level>
<appender-ref ref="STDOUT"></appender-ref>
</logger>
看看效果:
