SpringBoot整合Log日志打印SQL问题

2021-03-14  本文已影响0人  SmileFH
  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

上一篇 下一篇

猜你喜欢

热点阅读