1. 程式人生 > >如何讓mybatis打印出執行的sql

如何讓mybatis打印出執行的sql

轉自http://blog.aizhet.com/SQL/4599.html

mybatis預設使用log4j,當有self4j這個日誌jar包存在時會無法列印sql,請移除或者在工程

啟動時顯示設定mybatis使用的日誌類:

log4j.logger.org.apache.ibatis=debug,stdout log4j.logger.java.sql=debug,stdout

這樣有時可能卻不是個可行的辦法,原因在於不可能移除self4j包,因為其他依賴包必須依賴

這個包。 mybatis有如下方法來手動選擇日誌類,呼叫後成功列印日誌 如果引用了slf4j的

包,並且要使用log4j需要加入slf4j-log4j12的包,如果沒有加入slf4j-log4j12的包是無法打

印sql的。。具體log4j檔案如下:

log4j.rootCategory=info, stdout , R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.Conversion

Pattern=[QC] %p [%t] %C.%M(%L) | %m%n

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=D:\\report.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n

log4j.logger.com.ibatis=debug
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug

log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug,stdout

現在重啟tomcat,執行一條語句看看,sql是不是都出來了