Druid连接池开启慢SQL监控功能
在SQL监控中,有⼀项关于sql执⾏最慢执⾏时间的统计,但是只有⼀个值,就是⼀条sql语句最慢的执⾏时间记录,其他执⾏时间是看不到的,只能通过总时间来进⾏粗略的估计,还有⼀个问题就是,⼀旦项⽬重启,这些记录就全都没了,因此制定对应的⽇志输出策略是极其必要的。
⼤致想法就是通过druid获取所有项⽬运⾏中的慢sql执⾏记录,并将这些数据输出到⽇志⽂件中,查了⼀下druid的资料,调试了⼀段时间,最终成功实现。
druid连接池配置详解1、修改数据源配置,增加(l):
<property name="proxyFilters">
<list>
<ref bean="stat-filter"/>
<ref bean="log-filter"/>
</list>
</property>
…………
<!-- SQL监控⽇志配置执⾏时间⼤于200毫秒的都会被红⾊标注 -->
<bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter">
<property name="mergeSql" value="true"/>
<!-- 慢sql时间设置,即执⾏时间⼤于200毫秒的都是慢sql -->
<property name="slowSqlMillis" value="200"/>
<property name="logSlowSql" value="true"/>
</bean>
<bean id="log-filter" class="com.alibaba.druid.filter.logging.Log4jFilter">
<property name="dataSourceLogEnabled" value="true" />
<property name="statementExecutableSqlLogEnable" value="true" />
</bean>
2、修改log4j配置⽂件,增加慢sql⽇志的输出策略:
# Druid
log4j.logger.druid.sql=WARN,druid
log4j.logger.druid.sql.DataSource=WARN,druid
log4j.logger.druid.sql.Connection=WARN,druid
log4j.logger.druid.sql.Statement=WARN,druid
log4j.appender.druid=org.apache.log4j.DailyRollingFileAppender
log4j.appender.druid.layout=org.apache.log4j.PatternLayout
log4j.appender.druid.layout.ConversionPattern= [%d{HH\:mm\:ss}] %c{1} - %m%n
log4j.appender.druid.datePattern='.'yyyy-MM-dd
log4j.appender.druid.Threshold = WARN
log4j.appender.druid.append=true
log4j.appender.druid.File=${catalina.home}/logs/jhome/druid-slow-sql.log
3、重启再去查看druid监控后台。
可以看到跟原来有了⼀些差别,由于设置了慢sql的时间为⼤于200毫秒,所以执⾏时间⼤于200毫秒的都会被红⾊标注。
再去tomcat⽇志⽂件夹中查看⽇志⽂件,可以看到⽇志⽂件中已经存在配置的慢sql⽇志⽂件了,点击查看其中也已经有了慢sql记录的数据,慢sql以及这条sql语句执⾏的时间都有记录。D:\DevTools\apache-tomcat-8.0.36\logs\jhome⽬录下⽣成⽂件:druid-slow-sql.log

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。