首页 > 数据库技术 > 详细

详解druid打印SQL日志

时间:2020-09-15 12:42:11      阅读:402      评论:0      收藏:0      [点我收藏+]

在看本文之前你需要会使用logback或者log4j2基本配置,可以参看前期文章

log4j2    logback

 

1、druid官方出的方案,本文是在官方方案上进一步优化,Druid中使用log4j2进行日志输出

2、在使用mybatis作为ORM组件,打印SQL日志需要指定xxxx.Mapper日志级别是DEBUG级别,因为多服务下包名是不一样的,这样做是比较不方便无法做到通用。

3、官方的描述中需要开启日志打印

# 配置日志输出
spring.datasource.druid.filter.slf4j.enabled=true

 

技术分享图片

 

标红的是不需要打印,查看源码,com.alibaba.druid.filter.logging.Slf4jLogFilter

 

技术分享图片

发现默认情况下都是true配置,因此我们需要将不需要打印的日志改为false

技术分享图片

 

源码

if (statementPrepareAfterLogEnable && isStatementLogEnabled()) {
            statementLog("{conn-" + statement.getConnectionProxy().getId() + ", pstmt-" + statement.getId()
                         + "} created. " + statement.getSql());
        }

 

我们将statementPrepareAfterLogEnable  配置为false即可

spring.datasource.druid.filter.slf4j.enabled=true
spring.datasource.druid.filter.slf4j.statement-prepare-after-log-enabled=false

 

日志输出如下,已经没有created.

技术分享图片

 

 

同理,closed也是如此配置,

技术分享图片

 

#输出sql日志
spring.datasource.druid.filter.slf4j.enabled=true
spring.datasource.druid.filter.slf4j.statement-prepare-after-log-enabled=false
spring.datasource.druid.filter.slf4j.statement-close-after-log-enabled=false

详解druid打印SQL日志

原文:https://www.cnblogs.com/gyjx2016/p/13672374.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!