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 属性 ,指定对应的日志实现即可
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Spring Cloud Alibaba 本地调试介绍及方案设计
为了解决 本地调试 的问题,本文实现了一种简单实用的策略,可以通过 Nacos 动态配置服务路由,还可以基于用户,部门,组织等级别配置服务路由,实现 本地调试 的同时,实际上也实现 灰度发布,感兴趣的朋友跟随小编一起看看吧2021-07-07
Spring Cloud Gateway 整合 knife4j 聚合接口文档功能
这篇文章主要介绍了Spring Cloud Gateway 整合 knife4j 聚合接口文档的相关知识,我们可以基于 Spring Cloud Gateway 网关 + nacos + knife4j 对所有微服务项目的接口文档进行聚合,从而实现我们想要的文档管理功能,需要的朋友可以参考下2022-02-02


最新评论