java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > springboot mybatis屏蔽mybatis日志

springboot+mybatis如何屏蔽掉mybatis日志

作者:bourbon_zero

这篇文章主要介绍了springboot+mybatis如何屏蔽掉mybatis日志问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

springboot+mybatis屏蔽掉mybatis日志

使用的是logback日志,屏蔽掉mybatis的debug日志,只需要在配置文件(指的是application.yaml)将

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

注释即可

同理,需要改日志,将该句添加在配置文件即可

关闭mybatis日志问题

说明

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

mybatis 日志的实现

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

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

其实打开源码还有一些其他实现,但这几个是大家接触的最多的,如果找到日志实现,在项目启动的时候,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 属性 ,指定对应的日志实现即可

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文