springboot + mybatis控制台/日志文件打印SQL日志

本文讲述了在搭建项目时,如何在Mybatis配置中设置日志实现类(如StdOutImpl和Log4j2Impl),以便在控制台或日志文件中打印SQL。重点介绍了如何通过更改log-impl和设置日志级别来实现这一功能。
摘要由CSDN通过智能技术生成

最近在搭建完一个测试项目之后, 发现控制台并没有打印SQL日志。

原因是因为我没有在mybatis的配置中, 配置日志的实现类,只需要在yml或properties配置文件中的mybatis配置中添加日志实现的配置,并且配置控制台打印的日志实现类StdOutImpl:

mybatis:
    mapper-locations: classpath:mappers/*xml
    configuration:
        # 控制台打印SQL
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
        # 日志打印SQL , 需要将mybatis的日志输出级别改成debug
        # log-impl: org.apache.ibatis.logging.log4j2.Log4j2Impl

logging:
    # All < Trace < Debug < Info < Warn < Error < Fatal < OFF
    level:
        # 所有日志的输出级别
        root: info
        # 更细的控制
        # org.mybatis: debug

StdOutImpl:

public class StdOutImpl implements Log {

  public StdOutImpl(String clazz) {
    // Do Nothing
  }

  @Override
  public boolean isDebugEnabled() {
    return true;
  }

  @Override
  public boolean isTraceEnabled() {
    return true;
  }

  @Override
  public void error(String s, Throwable e) {
    System.err.println(s);
    e.printStackTrace(System.err);
  }

  @Override
  public void error(String s) {
    System.err.println(s);
  }

  @Override
  public void debug(String s) {
    System.out.println(s);
  }

  @Override
  public void trace(String s) {
    System.out.println(s);
  }

  @Override
  public void warn(String s) {
    System.out.println(s);
  }
}

可以看到, StdOutImpl 是用的控制台打印日志。

若需要将mybatis的日志打印到日志文件 , 则需要将上送的mybatis配置项 log-impl 改成其它的实现类(因为目前项目中日志我用的log4j2,所以配了对应的实现类 Log4j2Impl):

同时,若需要在日志文件中打印SQL,可配置输出mybatis的日志为debug,SQL日志是debug级别

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值