1. 程式人生 > >mybatis+log4j列印sql語句到控制檯

mybatis+log4j列印sql語句到控制檯

不好意思,這篇部落格拖了好久,一直是空白。這兩天又用到了,在網上查了很多資料,做法基本都一樣,但是都沒用,最後終於找到了一篇正確的。
jar包:log4j.jar,sel4j-api.jar,sel4j-log4j12.jar
廢話少說,直接上配置log4j.properties:

log4j.rootLogger=info,error,stdout
#log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
#log4j.appender.CONSOLE.Threshold=DEBUG
#log4j.appender.CONSOLE.Target=System.out
#log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout #log4j.appender.CONSOLE.layout.ConversionPattern=[%p] %d (%F:%L) - %m%n #log4j.logger.org.springframework=ERROR #log4j.logger.org.apache.ibatis=DEBUG #log4j.logger.Java.sql=DEBUG #log4j.rootCategory=info, stdout, R #log4j.logger.org.springframework=debug
log4j.logger.com.ibatis=DEBUG //可以 #log4j.logger.org.mybatis=DEBUG //可以 log4j.logger.com.finger.shoot.dal.dao=debug//必須 #log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG #log4j.logger.com.ibatis.sqlmap.engine.cache.CacheModel=DEBUG #log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientImpl=DEBUG
#log4j.logger.com.ibatis.sqlmap.engine.builder.xml.SqlMapParser=DEBUG #log4j.logger.com.ibatis.common.util.StopWatch=DEBUG #log4j.logger.java.sql.Connection=DEBUG #log4j.logger.java.sql.Statement=DEBUG #log4j.logger.java.sql.PreparedStatement=DEBUG #log4j.logger.java.sql.ResultSet=DEBUG log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out #log4j.appender.stdout.encoding=gbk log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p: %d{yyyy-MM-dd HH:mm:ss} (%F:%L) %m%n

上面加註釋的兩種寫法都可以,尤其需要注意的是:必須配置mapper介面的路徑
web.xml

 <context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>classpath:log4j.properties</param-value>
  </context-param>
  <context-param>
    <param-name>log4jRefreshInterval</param-name>
    <param-value>6000</param-value>
  </context-param>

  <listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  </listener>

上面的配置就可以在控制檯列印sql了。至於log4j.properties中加註釋的那些配置,都是網上找到的,試驗了一下,註釋以後不影響sql輸出。在網上還看到其他一些配置,也貼在這裡:
在mybatis-config.xml中配置:

 <settings>
         <!--<setting name="logImpl" value="STDOUT_LOGGING"/>-->
          <!--<setting name="logImpl" value="LOG4J"/>-->
       <!-- 列印sql語句 --><!--  <setting name="logPrefix" value="dao." />-->
  </settings>

這裡寫圖片描述
上面兩種配置我都試了,少了log4j.properties中的包路徑的配置,都不能打印出sql,而加了以後,沒有上面的配置的也不影響列印sql。下面連結的博主說只配置log4j.logger.org.mybatis=debug 也可以打印出sql,我試了也不行。
好了,有問題可以加我qq諮詢:411075810
參考http://blog.csdn.net/github_32658299/article/details/54288923