springboot配置⽇志打印不出来sql的解决⽅法
今天整合springboot2 + mybatis + logback 遇到了在⽇志中sql打印不出来的坑,在⽹上了好久,都不是我遇到的问题,这⾥吐槽⼀下下现在
的博客质量,好多都是抄袭的,也没有标注转载。
先说下要将sql打印到⽇志的配置
1、在l配置中增加以下配置
<!--指定 MyBatis 增加到⽇志名称的前缀。-->
log4j2不打印日志
<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.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
<encoder class="ch.qos.der.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来,最后到问题,是因为级别的原因。
解决⽅法
将这⾥的info改为debug,就可以打印出来了。
解释下原因:
我使⽤的是dev,⽇志打印级别为info,设置logger为mybatis的打印级别为debug,虽然info级别⼤于debug,但是有logger 在应该是可以打印出来的,但是我在CONSOLE的中也配置了级别为info,这⾥的设置会拦截logger设置的级别。
最后在说下sql打印在控制台的区别:
以上第⼀张图是mybatis⾃⼰设置打印在控制台的,第⼆张图是mybatis打印在logback⽇志中,logback打印在控制台的。
以上就是springboot 配置⽇志打印不出来sql的解决⽅法的详细内容,更多关于springboot 打印不出sql的资料请关注其它相关⽂章!