1. 程式人生 > 實用技巧 >Mybatis的日誌工廠

Mybatis的日誌工廠

尤其是在資料庫程式碼(SQL語句)編寫錯誤時,經常不容易發現錯誤,一個好的辦法就是將sql語句在執行時也能打印出來,以便及時發現錯誤,以往經常使用的方法是:

  • 使用System.out.println();將需要的資訊輸出到控制檯;

  • debug

推薦實現mybatis的日誌工廠!在執行程式碼時,能夠輸出完整的執行過程,便於排錯。

設定方式

在xml配置檔案中新增設定標籤,名稱為“logImpl”,value值有許多種,這裡介紹LOG4J 和 STDOUT_LOGGING,其中 STDOUT_LOGGING是標準輸出日誌。

所有的value值:

  • SLF4J

  • LOG4J (√)

  • LOG4J2

  • JDK_LOGGING

  • COMMONS_LOGGING

  • STDOUT_LOGGING(√)

  • NO_LOGGING

STDOUT_LOGGING的使用方式

配置原始碼:

<settings>
  <setting name="logImpl" value="STDOUT_LOGGING"/>        <!--標準輸出日誌-->
</settings>

測試即可!

LOG4J

LOG4J的好處:

  • 可以控制日誌資訊輸送的目的地是控制檯、檔案、GUI元件(甚至是套介面伺服器、NT的事件記錄器、UNIX Syslog守護程序);

  • 可以控制每一條日誌的輸出格式;

  • 可以定義每一條日誌資訊的級別。

使用方法:

1.匯入LOG4J的依賴包:

<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

2.建立log4j.properties配置檔案:

#將等級為DEBUG的日誌資訊輸出到console和file這兩個目的地,console和file的定義在下面的程式碼
log4j.rootLogger=DEBUG,console,file
​
#控制檯輸出的相關設定
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%c]-%m%n
​
#檔案輸出的相關設定
log4j.appender.file = org.apache.log4j.RollingFileAppender
log4j.appender.file.File=./log/log.log
log4j.appender.file.MaxFileSize=10mb
log4j.appender.file.Threshold=DEBUG
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n
​
#日誌輸出級別
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sql=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

3.設定LOG4J為日誌的實現

<settings>
    <!--<setting name="logImpl" value="STDOUT_LOGGING"/>        &lt;!&ndash;標準輸出日誌&ndash;&gt;-->
    <setting name="logImpl" value="LOG4J"/>         <!--LOG4J-->
</settings>

進行測試即可。

LOG4J的簡單使用
  • 編寫測試類:(匯入的包為import org.apache.log4j.Logger;)

@Test
public void TestLog4j(){
    logger.debug("debug:進入了LOG4J");
    logger.info("info:進入了LOG4J");
    logger.error("error::進入了LOG4J");
}

執行即可。

附部分常用日誌級別:

logger.debug("debug:進入了LOG4J");
logger.info("info:進入了LOG4J");
logger.error("error::進入了LOG4J");