关闭mybatis 日志

说明

  • 在网上找了一大圈都没有靠谱的答案,有时候项目中的日志打印太多,需要屏蔽部分日志打印

mybatis 日志的实现

  • 原理:就是mybatis 的日志抽取了公共的方法,需要依赖项目中的日志实现类,来实现日志打印,在不配置的时候,mybatis会按照如下的顺序去查找日志实现类

Mybatis内置的日志工厂提供日志功能,具体的日志实现有以下几种方式:

  • SLF4J
  • Apache Commons Logging
  • Log4j 2
  • Log4j
  • JDK logging

其实打开源码还有一些其他实现,但这几个是大家接触的最多的,如果找到日志实现,在项目启动的时候,mybatis 就会打印相关日志

关闭日志

  • springboot 环境中

在mybatis 自动找不到 日志实现类的时候,可以指定日志实现类

在springboot 项目中可以通过在配置文件中配置该属性来指定 mybatis.configuration.log-impl

mybatis.configuration.log-impl=org.apache.ibatis.logging.nologging.NoLoggingImpl

这里配置的实现类,就是无处理,这样就关闭了日志打印,或者换成

org.apache.ibatis.logging.stdout.StdOutImpl

这两个mybatis 自带的实现类,NoLoggingImpl 是啥也不做,StdOutImpl 是将日志输出到控制台

public class StdOutImpl implements Log {
    public StdOutImpl(String clazz) {
    }

    public boolean isDebugEnabled() {
        return true;
    }

    public boolean isTraceEnabled() {
        return true;
    }

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

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

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

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

    public void warn(String s) {
        System.out.println(s);
    }
}
  • 如果是其他环境

在mybatis.xml 文件中,指定相同的 log-iml 属性 ,指定对应的日志实现即可

更多推荐

关闭mybatis 日志