springboot使用druid记录sql脚本日志
Posted will的猜想
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot使用druid记录sql脚本日志相关的知识,希望对你有一定的参考价值。
方法一:
在application.properties设置开启slf4j过滤器
#开启slf4j过滤器
spring.datasource.druid.filter.slf4j.enabled=true
然后在logback-spring.xml文件配置日志输出
<logger name="druid.sql.Statement" level="DEBUG" additivity="false">
<appender-ref ref="STDOUT" />
</logger>
方法二:
在application.properties设置开启stat过滤器,该过滤器用于统计,并设置过滤器启动慢SQL日志和设置慢SQL的时间
#默认开启druid统计,sql日志记录查看logback-spring.xml的配置
spring.datasource.druid.filter.stat.enabled=true
#开启慢sql日志
spring.datasource.druid.filter.stat.log-slow-sql=true
#设置记录慢sql的时间,单位毫秒,执行时间大于等于3秒的SQL脚本都会记录
spring.datasource.druid.filter.stat.slow-sql-millis=3000
然后在logback-spring.xml文件配置日志输出
<!-- com.alibaba.druid.filter.stat.StatFilter 输出SQL脚本-->
<logger name="com.alibaba.druid.filter.stat.StatFilter" level="ERROR" additivity="false">
<appender-ref ref="STDOUT" />
</logger>
方式三
//第一种方式
dataSource.setFilters("stat,slf4j");
//第二种方式
List<Filter> filters = new ArrayList<>();
Slf4jLogFilter slf4jLogFilter = new Slf4jLogFilter();
filters.add(new StatFilter());
filters.add(slf4jLogFilter);
//防止日志输出太多
slf4jLogFilter.setStatementPrepareAfterLogEnabled(false);
slf4jLogFilter.setStatementExecuteAfterLogEnabled(false);
dataSource.setProxyFilters(filters);
Properties properties = new Properties();
properties.setProperty("druid.stat.logSlowSql", "true");
properties.setProperty("druid.stat.slowSqlMillis", "1");
properties.setProperty("druid.log.stmt.executableSql", "true");
dataSource.setConnectProperties(properties);
然后在logback-spring.xml文件配置日志输出
<logger name="druid.sql.Statement" level="DEBUG" additivity="false">
<appender-ref ref="STDOUT" />
</logger>
以上是关于springboot使用druid记录sql脚本日志的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot配置 druid 数据源配置 慢SQL记录
SpringBoot 监控统计:SQL监控慢SQL记录Spring监控去广告
SpringBoot 监控统计:SQL监控慢SQL记录Spring监控去广告
SpringBoot 监控统计:SQL监控慢SQL记录Spring监控去广告
SpringBoot系列七:SpringBoot 集成 MyBatis事物配置及使用druid 数据源druid 监控使用