詳解druid列印SQL日誌
阿新 • • 發佈:2020-09-15
在看本文之前你需要會使用logback或者log4j2基本配置,可以參看前期文章
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