1. 程式人生 > 實用技巧 >07、mybatis日誌工廠

07、mybatis日誌工廠

1、日誌

通過使用內建的日誌工廠提供日誌功能。內建日誌工廠將會把日誌工作委託給下面的實現之一:

SLF4J 
LOG4J 【掌握】
LOG4J2
JDK_LOGGING:JDK記錄
COMMONS_LOGGING:日誌記錄
STDOUT_LOGGING :標準輸出記錄
NO_LOGGING:沒有記錄

日誌的使用:
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>

  結果:

Logging initialized using 'class org.apache.ibatis.logging.stdout.StdOutImpl' adapter.
PooledDataSource forcefully closed/removed all connections.
PooledDataSource forcefully closed/removed all connections.
PooledDataSource forcefully closed/removed all connections.
PooledDataSource forcefully closed/removed all connections.
Opening JDBC Connection
Created connection 1995616381.
Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@76f2b07d]
==>  Preparing: /*根據id查詢使用者*/ select * from mybatis.user where id = ?; 
==> Parameters: 1(Integer)
<== Columns: id, name, pwd <== Row: 1, zhangsan, 123 <== Total: 1 User{id=1, name='zhangsan', pwd='123'} Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@76f2b07d] Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@76f2b07d] Returned connection 1995616381 to pool.

2、LOG4J

什麼是log4j:

  • Log4j是Apache的一個開源專案,可以控制日誌資訊輸送的目的地是控制檯、檔案、GUI元件
  • 我們也可以控制每一條日誌的輸出格式;
  • 通過一個配置檔案來靈活地進行配置,而不需要修改應用的程式碼。

1、匯入log4j對應的jar包(依賴)

<!-- 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/zhixi.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="LOG4J"/>
    </settings>

3、簡單使用:

1、在要使用log4j的類中引入類:import org.apache.log4j.Logger;

2、日誌物件,引數是當前類的class

static Logger logger = Logger.getLogger(IUserDaoTest.class);

3、使用:執行測試類即可自動新建日誌檔案

public class IUserDaoTest {
    static Logger logger = Logger.getLogger(IUserDaoTest.class);

    @Test
    public void getLogTest() {
        //列印資訊
        logger.info("info:進入了testLog4j");
        logger.debug("debug:進入了testLog4j");
        logger.error("error :進入了testLog4j");
    }
}