分享

初探Druid连接池之二——慢SQL日志记录

 WindySky 2017-10-11

由于工作原因,这里先不说连接数据库部分的配置,后面会补上,直接进入慢SQL日志记录。

 

1.applicationContext.xml中增加如下配置:

Xml代码  收藏代码
  1. <bean abstract="true" id="mysql_database" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">  
  2.    
  3.         <!-- 监控统计拦截的filters,日志记录 edited by zhangpl 20140824 start -->  
  4.     <!-- 并在filters属性中配置了log4j -->  
  5.         <property name="proxyFilters">  
  6.             <list>  
  7.                 <ref bean="stat-filter" />  
  8.                 <ref bean="log-filter" />  
  9.             </list>   
  10.         </property>  
  11.      <!-- 监控统计拦截的filters,日志记录 edited by zhangpl 20140824 end -->  
  12.         <property name="filters">  
  13.         <value>stat,wall,log4j</value>  
  14.     </property>  
  15.   
  16.         <!-- 其它基本配置略...-->  
  17. </bean>  
  18.   
  19. <!-- 慢SQL记录  edited by zhangpl 20140824  start-->  
  20. <bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter">  
  21.         <property name="mergeSql" value="true" />  
  22.         <property name="slowSqlMillis" value="1000" />  
  23.         <property name="logSlowSql" value="true" />  
  24. </bean>  
  25.       
  26. <bean id="log-filter" class="com.alibaba.druid.filter.logging.Log4jFilter">  
  27.         <!-- <property name="resultSetLogEnabled" value="false" /> -->  
  28.         <!-- <property name="statementExecutableSqlLogEnable" value="true" /> -->  
  29. </bean>  
  30. <!-- 慢SQL记录  edited by zhangpl 20140824  end-->  

 

 

2.log4j.properties中配置如下:

Xml代码  收藏代码
  1. log4j.rootLogger=warn,A1,A2  
  2.   
  3. #1.打印druid连接池SQL语句,info级别的语句打印到info_slowsql.log,warn级别语句打印到warn_slowlog.log;  
  4. #2.将日志写到文件中;   
  5.   
  6. # Druid  
  7. log4j.logger.druid.sql=info,A1,A2  
  8. log4j.logger.druid.sql.DataSource=info,A1,A2  
  9. log4j.logger.druid.sql.Connection=info,A1,A2  
  10. log4j.logger.druid.sql.Statement=info,A1,A2  
  11. log4j.logger.druid.sql.ResultSet=info,A1,A2  
  12.   
  13. log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender  
  14. log4j.appender.A1.File=../druid-logs/info_slowsql.log  
  15. log4j.appender.A1.DatePattern='.'yyyy-MM-dd  
  16. #log4j.appender.A1.File=${catalina.home}/logs/info_slowsql.log  
  17. #log4j.appender.A1.File=${WebApp.TomcatHome}/logs/info_slowsql.log  
  18. log4j.appender.A1.ImmediateFlush=true  
  19. log4j.appender.A1.Append=true  
  20. log4j.appender.A1.Threshold=info  
  21. log4j.appender.A1.layout=org.apache.log4j.PatternLayout  
  22. log4j.appender.A1.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] [%p] [%c] - %m%n  
  23.   
  24. log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender  
  25. log4j.appender.A2.File=../druid-logs/warn_slowsql.log  
  26. log4j.appender.A2.DatePattern='.'yyyy-MM-dd  
  27. #log4j.appender.A2.File=${catalina.home}/logs/warn_slowsql.log  
  28. #log4j.appender.A2.File=${WebApp.TomcatHome}/logs/warn_slowsql.log  
  29. log4j.appender.A2.ImmediateFlush=true  
  30. log4j.appender.A2.Append=true  
  31. log4j.appender.A2.Threshold=warn  
  32. log4j.appender.A2.layout=org.apache.log4j.PatternLayout  
  33. log4j.appender.A2.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] [%p] [%c] - %m%n  

 

 经过上面的配置,就会在文件中打印,如下的慢SQL语句:

Xml代码  收藏代码
  1. ......  
  2. [2014-08-26 11:12:59] [ERROR] [com.alibaba.druid.filter.stat.StatFilter] - slow sql 3121 millis.   
  3. select count(1) from person where schoolid=? and isDeleted=0   and GET_FIRST_PINYIN_CHAR(username) =?    
  4. ["145","a"]  
  5. ......  

 

有问题欢迎指正,可参考官方文档,以官方文档为准。

 

参考:http://www.oschina.net/question/97503_117693

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多