zoukankan      html  css  js  c++  java
  • 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来,最后找到问题,是因为级别的原因。
    解决方法

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

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

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

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

  • 相关阅读:
    docker安装
    快速删除docker中的容器
    CentOS赋予一个普通用户root权限
    大型电商网站:第三章:环境搭建
    面试:第十一章:缓存
    面试:第十章:单点登录
    面试:第九章:分布式 、高并发、集群、负载均衡、高可用
    面试:第八章:SpringMVC、Springboot、Mybatis、Dubbo、Zookeeper、Redis、Elasticsearch、Nginx 、Fastdfs、ActiveMQ
    面试:第七章:冷门面试题
    大型电商网站:第一章:主要电商模式
  • 原文地址:https://www.cnblogs.com/masy-lucifer/p/13938410.html
Copyright © 2011-2022 走看看