SpringBoot中如何调整配置使SQL日志输出正常显示?

2026-04-30 06:022阅读0评论SEO教程
  • 内容介绍
  • 相关推荐

本文共计645个文字,预计阅读时间需要3分钟。

SpringBoot中如何调整配置使SQL日志输出正常显示?

今天整合Spring Boot 2 + Mybatis + Logback,遇到了在日志中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的值对应,但这里不带“.”

SpringBoot中如何调整配置使SQL日志输出正常显示?

那么这里说我遇到的问题吧,以下是我的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来,最后找到问题,是因为级别的原因。
解决方法

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

解释下原因:

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

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

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

以上就是springboot 配置日志 打印不出来sql的解决方法的详细内容,更多关于springboot 打印不出sql的资料请关注易盾网络其它相关文章!

本文共计645个文字,预计阅读时间需要3分钟。

SpringBoot中如何调整配置使SQL日志输出正常显示?

今天整合Spring Boot 2 + Mybatis + Logback,遇到了在日志中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的值对应,但这里不带“.”

SpringBoot中如何调整配置使SQL日志输出正常显示?

那么这里说我遇到的问题吧,以下是我的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来,最后找到问题,是因为级别的原因。
解决方法

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

解释下原因:

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

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

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

以上就是springboot 配置日志 打印不出来sql的解决方法的详细内容,更多关于springboot 打印不出sql的资料请关注易盾网络其它相关文章!