Mybatis的日誌工廠
阿新 • • 發佈:2020-07-30
尤其是在資料庫程式碼(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"/> <!–標準輸出日誌–>--> <setting name="logImpl" value="LOG4J"/> <!--LOG4J--> </settings>
進行測試即可。
LOG4J的簡單使用
@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");