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内置的日志工厂提供日志功能,具体的日志实现有以下几种方式:
- 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 属性 ,指定对应的日志实现即可
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。