Spring boot 使用logback+log4jdbc打印sql日志

前言

使用Spring Boot进行开发时,我们为了调试方便,都需要输出sql语句,简单的日志打印方式,只能显示sql语句,并不能显示具体的占位符的内容,这篇文章主要讲解如何使用logback+log4jdbc打印sql日志并显示占位符内容

简单打印日志

使用简单的方式打印sql日志,只需要在配置文件中添加

spring:
  jpa:
    show-sql: true

通过设置 show-sql: true 就能打印日志,效果如下


这种方式大多数情况下不能满足我们的需求,这时就需要另一种方式来替代

logback+log4jdbc打印sql日志

使用了logback+log4jdbc打印的效果如下


这里可以看到,虽然输出了占位符里面的内容,但是也显得特别的冗余,那么如何优化它的显示,文章下面会提及

导入maven依赖
<!--监控sql日志-->
<dependency>
    <groupId>org.bgee.log4jdbc-log4j2</groupId>
    <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
    <version>1.16</version>
</dependency>
修改配置文件
spring:
  datasource:
    driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
    url: jdbc:log4jdbc:mysql://localhost:3306/jpa
    username: root
    password: 123456
新增log4jdbc.log4j2.properties

在resources目录新增log4jdbc.log4j2.properties文件

# If you use SLF4J. First, you need to tell log4jdbc-log4j2 that you want to use the SLF4J logger
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
优化显示效果

修改logback.xml,在logback.xml中加入如下内容

<!--监控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>

    <!--将不必要显示的隐藏掉-->
    <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>
查看效果

再次执行查询,查看效果

项目源码

github:https://github.com/dqjdda/SpringBoot_All

码云:https://gitee.com/hgpt/SpringBoot_All

开源后台管理系统:

欢迎体验Aurora

github: https://github.com/dqjdda/Aurora

码云: https://gitee.com/hgpt/Aurora

猜你喜欢

转载自blog.csdn.net/zj7321/article/details/83144980