springboot+mybatis如何将操作数据库sql记录到日志文件中

springboot+mybatis如何将操作数据库sql记录到日志文件中

通常我们可以通过如下配置将操作数据库的sql语句打印到控制台上,但是如何将这些sql语句记录到日志文件中方便我们查询问题呢?

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

GitHub地址:https://github.com/mingyang66/spring-parent

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值