温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

springboot 配置日志中sql无法打印怎么解决

发布时间:2020-11-18 14:34:59 来源:亿速云 阅读:523 作者:Leah 栏目:开发技术

这篇文章给大家介绍springboot 配置日志中sql无法打印怎么解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

今天整合springboot2 + mybatis + logback 遇到了在日志中sql打印不出来的坑,在网上找了好久,都不是我遇到的问题,这里吐槽一下下现在的博客质量,好多都是抄袭的,也没有标注转载。
先说下要将sql打印到日志的配置

1、在mybatis.xml配置中增加以下配置

 <!--指定 MyBatis 增加到日志名称的前缀。-->
 <setting name="logPrefix" value="m-shop-mybatis-sql." />
 <!--指定 MyBatis 所用日志的具体实现,未指定时将自动查找。 SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING-->
 <setting name="logImpl" value="SLF4J" />

注:这里注意下logPrefix的value需要带“.”
2、在logback-spring中增加如下配置

 <logger name="m-shop-mybatis-sql" level="debug"></logger>

注:这里的name属性需要与mybatis文件中logPrefix的值对应,但这里不带“.”

那么这里说我遇到的问题吧,以下是我的logback中部分配置

<!--将日志输出到控制台-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
  <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
    <level>info</level>
  </filter>
  <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
    <!--打印格式-->
    <pattern>${LOG_FORMAT}</pattern>
    <!-- 设置字符集 -->
    <charset>${ENCODING}</charset>
  </encoder>
</appender>

<logger name="m-shop-mybatis-sql" level="debug"></logger>

<springProfile name="dev,test">
  <!-- 日志输出级别 -->
  <root level="info">
    <appender-ref ref="CONSOLE" />
  </root>
</springProfile>
<springProfile name="prod">
  <!-- 日志输出级别 -->
  <root level="info">
    <appender-ref ref="FILE" />
  </root>
</springProfile>

这是我最开始的配置,就是打印不出sql来,最后找到问题,是因为级别的原因。
解决方法

springboot 配置日志中sql无法打印怎么解决

将这里的info改为debug,就可以打印出来了。

解释下原因:

我使用的是dev,日志打印级别为info,设置logger为mybatis的打印级别为debug,虽然info级别大于debug,但是有logger 在应该是可以打印出来的,但是我在CONSOLE的中也配置了级别为info,这里的设置会拦截logger设置的级别。

最后在说下sql打印在控制台的区别:

springboot 配置日志中sql无法打印怎么解决

springboot 配置日志中sql无法打印怎么解决

以上第一张图是mybatis自己设置打印在控制台的,第二张图是mybatis打印在logback日志中,logback打印在控制台的。

关于springboot 配置日志中sql无法打印怎么解决就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI