1. 程式人生 > 其它 >mybatis 日誌

mybatis 日誌

mybatis 日誌:

mybatis 內建了日誌工廠類,內建的日誌工廠將日誌輸出交給以下其中一種工具作代理:

SLF4J
Apache Commons Logging
Log4j 2
Log4j
JDK logging

mybatis 內建日誌工廠基於執行時自省機制選擇合適的日誌工具。它會使用第一個查詢得到的工具(按上文列舉的順序查詢)。如果一個都未找到,日誌功能就會被禁用。

上文提到了“執行時自省機制”,那什麼是執行時自省機制呢?簡單的來說就是,你啥也不用改動,只需要把SLF4J或者Apache Commons Logging等日誌工具的 jar 扔進去,mybatis 就可以通過反射機制,生成相應的具體日誌工具,進而輸出日誌。

此時,如果你的應用部署在一個類路徑已經包含 Commons Logging 的環境中,而你又想使用其它日誌工具,這個時候,你需要怎麼辦呢?你可以通過在 MyBatis 配置檔案 mybatis-config.xml 裡面新增一項 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 且構造方法是以字串為引數的類的完全限定名

所以在 springboot中使用 mybatis 時,一般不用特別關心mybatis的日誌,只需設定整體專案日誌就好了,mybatis 會自動使用環境中的日誌工具。

在springboot專案中,如果要 列印 執行的 sql 語句,需要設定 日誌級別 為 debug

# debug日誌級別 列印sql 
logging.level.com.example.mapper=debug

參考:
http://www.mybatis.cn/archives/836.html
https://mybatis.org/mybatis-3/zh/logging.html