美文网首页
SpringBoot整合Log日志打印SQL问题

SpringBoot整合Log日志打印SQL问题

作者: SmileFH | 来源:发表于2021-03-14 16:04 被阅读0次
    1. SpringBoot中的默认日志实现是通过logback实现的,SpringBoot已经帮我们配置好了,所以我们是可以直接拿来用的戳这里了解SpringBoot的默认日志

    2. 配置默认日志级别时出现的错误,Spring boot 集成logging的时候报Failed to bind properties under 'logging.level' ..错

    3. 实现boot中默认日志框架打印sql日志到控制台功能
      只需要在yml或者properties文件中添加日志打印级别所在的包就可以。

    # log配置
    logging:
      level:
    # 下方的路径填写的是mapper接口所在的全限定包名
        com.fh.bookstore.dao: debug
    

    优点:无需引入其他依赖,SpringBoot已经集合得到,快速方便,配合logback.xml还能做到自定义配色的打印。
    缺点:MyBatis以及mybatis-plus打印的SQL日志是在Debug级别的,而且只能打印在配置文件中写死的mapper接口全限定类名内的,项目小的话完全没有问题,如果项目大就会造成,配置文件的繁琐、冗余、膨胀,仅仅是打印sql日志的接口全限定类名都得写好几十个,极大的不方便后期维护。

    1. 配置logback的日志打印颜色(这里直接拿eladmin框架的代码过来看)
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration scan="true" scanPeriod="30 seconds" debug="false">
        <contextName>elAdmin</contextName>
        <property name="log.charset" value="utf-8" />
        <!--下边的%black就是要改变的颜色配置-->
        <property name="log.pattern" value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %gray(%msg%n)" />
    
        <!--输出到控制台-->
        <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>${log.pattern}</pattern>
                <charset>${log.charset}</charset>
            </encoder>
        </appender>
    
        <!--普通日志输出到控制台-->
        <root level="info">
            <appender-ref ref="console" />
        </root>
    
        <!--监控sql日志输出 -->
        <logger name="jdbc.sqlonly" level="INFO" additivity="false">
            <appender-ref ref="console" />
        </logger>
    
        <logger name="jdbc.resultset" level="ERROR" additivity="false">
            <appender-ref ref="console" />
        </logger>
    
        <!--  如想看到表格数据,将OFF改为INFO  -->
        <logger name="jdbc.resultsettable" level="OFF" additivity="false">
            <appender-ref ref="console" />
        </logger>
    
        <logger name="jdbc.connection" level="OFF" additivity="false">
            <appender-ref ref="console" />
        </logger>
    
        <logger name="jdbc.sqltiming" level="OFF" additivity="false">
            <appender-ref ref="console" />
        </logger>
    
        <logger name="jdbc.audit" level="OFF" additivity="false">
            <appender-ref ref="console" />
        </logger>
    </configuration>
    
    1. 为了解决SQL日志打印的问题
      使用log4jdbc依赖包,配上eladmin的logback配置,做日志的SQL打印效果


      image.png

    log4jdbc和log4jdbc-log4j2-jdbc4.1的区别是后者添加了一个SQL结果表格的打印功能,要开启这个功能需要在logback中更改resultsettable打印级别为INFO,输出效果为。

    书店项目中已经导入了org.bgee.log4jdbc-log4j2包,接下来去写org.bgee.log4jdbc-log4j2配置文件,然后配置SQL的驱动链接添加jdbc

    相关文章

      网友评论

          本文标题:SpringBoot整合Log日志打印SQL问题

          本文链接:https://www.haomeiwen.com/subject/tptpzktx.html