天天看點

Mybatis:關于日志輸出到控制台問題問題

在使用Mybatis并且配置log4j檔案後發現組合的sql語句并沒有列印到控制台

原因:Mybatis支援的幾種日志工具的使用有優先級

檢視Mybatis的官方文檔的logging子產品,日志工具優先級如下:

  • SLF4J
  • Apache Commons Logging
  • Log4j 2
  • Log4j
  • JDK logging

Mybatis會從上到下搜尋日志工具,并把找到的第一個工具預設使用。

是以我們配置的log4j檔案其實并沒有用到。

解決辦法:在Mybatis的配置檔案(例如:mybatis-config檔案)中添加setting配置選擇日志檔案

例:

<configuration>
  <settings>
    ...
    <setting name="logImpl" value="LOG4J"/>
    ...
  </settings>
</configuration>
           

logImpl可選的值有:SLF4J、LOG4J、LOG4J2、JDK_LOGGING、COMMONS_LOGGING、STDOUT_LOGGING、NO_LOGGING 或者是實作了接口org.apache.ibatis.logging.Log的類的完全限定類名, 并且這個類的構造函數需要是以一個字元串(String類型)為參數的。 (可以參考org.apache.ibatis.logging.slf4j.Slf4jImpl.java的實作)

繼續閱讀