日志工廠
思考: Mybatis為什么要引入日志的實作,由于Mybatis是在mapper.xml檔案中寫sql,不像以前寫對應mapper介面的impl實作類可以在實作類里面寫列印日志的陳述句,所以通過日志工廠引入一個日志的實作,Mybatis框架會列印sql相關資訊,
以下截圖在Mybatis官網中:https://mybatis.org/mybatis-3/zh/configuration.html#settings

- SLF4J
- LOG4J 【掌握】
- LOG4J2
- JDK_LOGGING
- COMMONS_LOGGING
- STDOUT_LOGGING 【掌握】
- NO_LOGGING
在Mybatis中具體使用哪種日志實作,在設定中設定!
STDOUT_LOGGING :標準日志輸出 不用配其他的日志實作,默認mybatis自帶
不引入日志如下:

加了標準日志輸出之后的控制臺:
<settings>
<!--標準的日志工廠實作-->
<setting name="logImpl" value="https://www.cnblogs.com/laiyw/p/STDOUT_LOGGING"/>
</settings>

綜上:可以在Mybatis核心組態檔中配置我們的日志!
那如果我想用log4J作為Mybatis的日志實作呢,當我們在Mybatis核心組態檔這樣寫:
<settings>
<!--標準的日志工廠實作-->
<setting name="logImpl" value="https://www.cnblogs.com/laiyw/p/STDOUT_LOGGING"/>
</settings>

發現classnotFound,報這個錯百分之八十(百分之20是自己setting標簽的屬性值寫錯)是沒有匯入對應log4j的包
下面去百度百科了解一下log4j:
1.什么是log4j?
-
Log4j是Apache的一個開源專案,通過使用Log4j,我們可以控制日志資訊輸送的目的地是控制臺、檔案、GUI組件
-
我們也可以控制每一條日志的輸出格式
-
通過定義每一條日志資訊的級別,我們能夠更加細致地控制日志的生成程序
-
通過一個組態檔來靈活地進行配置,而不需要修改應用的代碼
1.先匯入log4j的包
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
2.log4j.properties
這里提一下日志資訊的級別就是info debug error,像在代碼里寫logger.info(),logger.debug(), logger.error()在控制臺或日志檔案一行前面就會輸出【INFO】【debug】【error】標注每一行的日志資訊級別
#將等級為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
#檔案輸出的相關設定,檔案超過10mb就會新生成一個檔案
log4j.appender.file = org.apache.log4j.RollingFileAppender
log4j.appender.file.File=./log/kuang.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為Mybatis日志的實作
<settings>
<setting name="logImpl" value="https://www.cnblogs.com/laiyw/p/LOG4J"/>
</settings>
4.log4j的使用,直接使用效果如下圖:

log4j的簡單使用
1.在要使用log4j的類中,不要導錯包:import org.apache.log4j.Logger;
2.生成一個日志物件,引數為當前類的class
static Logger logger = Logger.getLogger(UserDaoTest.class);
3.日志級別(定義每一條日志資訊的級別,比如說一開始全是debug,你用logger.info寫了一句提示日志,則在日志檔案[INFO]就很明顯能看出來)
logger.info("測驗,進入了getUserList方法");
logger.info("info:進入了testLog4j");
logger.debug("debug:進入了testLog4j");
logger.error("error:進入了testLog4j");


這篇文章的原始碼在Mybatis-study工程的mybatis-04模塊下!,后面會給出碼云地址,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/279501.html
標籤:Java
