首頁 > 軟體

logback中顯示mybatis查詢紀錄檔檔案並寫入的方法範例

2022-03-23 16:00:32

網上看了很多篇文章關於如何設定mybatis的logback紀錄檔的,複雜的簡單的都有,但是有用的沒幾個,耽誤了很多時間。通過對logback的學習,以下方式是一定可行的,希望可以為大家節省點時間。通常我們可以通過如下設定將運算元據庫的sql語句列印到控制檯上,但是如何將這些sql語句記錄到紀錄檔檔案中方便我們查詢問題呢?

在logback中顯示mybatis查詢紀錄檔

一、組態檔

可以有多種不同的實現,以下是將紀錄檔輸出到控制檯

mybatis:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

二、客製化包的紀錄檔level

logging:
  level:
    #你的repository的包
    com.kingboy.repository: debug

三、通過logback-spring.xml檔案

在檔案中新增如下設定

<configuration>
//新增這部分內容,改為自己的包路徑
<logger name="com.kingboy.repository" level="DEBUG" />
<configuration>

將運算元據庫sql記錄到紀錄檔檔案中

springboot+mybatis

mybatis:
  # 標註待解析的mapper的xml檔案位置
  mapper-locations: classpath:mapper/*.xml
  configuration:
    # org.apache.ibatis.logging.slf4j.Slf4jImpl
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

具體實現方式是重寫StdOutImpl類

實現方式如下:

package com.emily.infrastructure.datasource.log;
import com.emily.infrastructure.logback.factory.LogbackFactory;
import org.apache.ibatis.logging.Log;
/**
* @Description: 將mybatis sql語句記錄到紀錄檔檔案中實現類,是org.apache.ibatis.logging.stdout.StdOutImpl類的替換
* @Author: Emily
* @create: 2021/8/22
*/
public class LogBackImpl implements Log {
    public LogBackImpl(String clazz) {
        // Do Nothing
    }
    @Override
    public boolean isDebugEnabled() {
        return true;
    }
    @Override
    public boolean isTraceEnabled() {
        return true;
    }
    @Override
    public void error(String s, Throwable e) {
        LogbackFactory.module("database", "database", s);
        e.printStackTrace(System.err);
    }
    @Override
    public void error(String s) {
        LogbackFactory.module("database", "database", s);
    }
    @Override
    public void debug(String s) {
        LogbackFactory.module("database", "database", s);
    }
    @Override
    public void trace(String s) {
        LogbackFactory.module("database", "database", s);
    }
    @Override
    public void warn(String s) {
        LogbackFactory.module("database", "database", s);
    }
}

要想重寫的實現類生效,需將設定替換為實現類,如下:

mybatis:
  # 標註待解析的mapper的xml檔案位置
  mapper-locations: classpath:mapper/*.xml
  configuration:
    # org.apache.ibatis.logging.slf4j.Slf4jImpl
    log-impl: com.emily.infrastructure.datasource.log.LogBackImpl

以上就是logback中顯示mybatis查詢紀錄檔檔案並寫入的方法範例的詳細內容,更多關於logback顯示mybatis查詢紀錄檔檔案並寫入的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com