`
xingsan_zhang
  • 浏览: 55583 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多

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

 

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

<bean abstract="true" id="mysql_database" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
 
        <!-- 监控统计拦截的filters,日志记录 edited by zhangpl 20140824 start -->
	<!-- 并在filters属性中配置了log4j -->
        <property name="proxyFilters">
            <list>
                <ref bean="stat-filter" />
                <ref bean="log-filter" />
            </list> 
        </property>
	 <!-- 监控统计拦截的filters,日志记录 edited by zhangpl 20140824 end -->
        <property name="filters">
	    <value>stat,wall,log4j</value>
	</property>

        <!-- 其它基本配置略...-->
</bean>

<!-- 慢SQL记录  edited by zhangpl 20140824  start-->
<bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter">
        <property name="mergeSql" value="true" />
        <property name="slowSqlMillis" value="1000" />
        <property name="logSlowSql" value="true" />
</bean>
    
<bean id="log-filter" class="com.alibaba.druid.filter.logging.Log4jFilter">
        <!-- <property name="resultSetLogEnabled" value="false" /> -->
        <!-- <property name="statementExecutableSqlLogEnable" value="true" /> -->
</bean>
<!-- 慢SQL记录  edited by zhangpl 20140824  end-->

 

 

2.log4j.properties中配置如下:

log4j.rootLogger=warn,A1,A2

#1.打印druid连接池SQL语句,info级别的语句打印到info_slowsql.log,warn级别语句打印到warn_slowlog.log;
#2.将日志写到文件中; 

# Druid
log4j.logger.druid.sql=info,A1,A2
log4j.logger.druid.sql.DataSource=info,A1,A2
log4j.logger.druid.sql.Connection=info,A1,A2
log4j.logger.druid.sql.Statement=info,A1,A2
log4j.logger.druid.sql.ResultSet=info,A1,A2

log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=../druid-logs/info_slowsql.log
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
#log4j.appender.A1.File=${catalina.home}/logs/info_slowsql.log
#log4j.appender.A1.File=${WebApp.TomcatHome}/logs/info_slowsql.log
log4j.appender.A1.ImmediateFlush=true
log4j.appender.A1.Append=true
log4j.appender.A1.Threshold=info
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] [%p] [%c] - %m%n

log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.File=../druid-logs/warn_slowsql.log
log4j.appender.A2.DatePattern='.'yyyy-MM-dd
#log4j.appender.A2.File=${catalina.home}/logs/warn_slowsql.log
#log4j.appender.A2.File=${WebApp.TomcatHome}/logs/warn_slowsql.log
log4j.appender.A2.ImmediateFlush=true
log4j.appender.A2.Append=true
log4j.appender.A2.Threshold=warn
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] [%p] [%c] - %m%n

 

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

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

 

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

 

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

0
0
分享到:
评论

相关推荐

    初探Druid连接池之三——进入内置监控页面(连接数据源后)

    这篇博客“初探Druid连接池之三——进入内置监控页面(连接数据源后)”将引导我们深入了解如何在实际应用中启用并使用Druid的监控功能。 首先,Druid连接池的核心优势在于其对数据库连接的精细化管理,包括连接...

    tomcat连接池与阿里Druid连接池

    二、阿里 Druid 连接池配置 阿里 Druid 连接池配置需要在 Maven 项目中添加 Druid 依赖项,并在 application.properties 文件中配置数据库连接信息。下面是阿里 Druid 连接池的配置示例: ```xml &lt;!-- Druid 依赖项...

    SSM框架druid连接池,sql server数据库

    2. **SQL执行慢**:通过Druid的监控功能,可以找出执行慢的SQL,进行优化,如调整索引、优化查询语句等。 3. **内存泄露**:确保在关闭数据库连接时正确释放资源,避免因未关闭Statement或ResultSet导致的内存泄露。...

    访问SQLServer - springboot自定义DBUtil(druid连接池)操作SQLServer数据库

    Spring-Boot通过druid连接池获取连接操作SQLServer数据库 总结:【共3步】 第1步:添加druid和MSSQL Driver的依赖项; 第2步:配置连接字符串; 第3步:创建数据库操作类,使用@Bean注入DruidDataSource, 然后根据...

    druid连接池

    Druid连接池是阿里巴巴团队开发的一款高效、功能丰富的数据库连接池组件。它在Java环境中被广泛应用于Web应用服务器,以优化数据库资源的管理,提高系统的性能和稳定性。在本压缩包中,包含的是`druid`项目的源代码...

    使用Druid数据连接池连接PostgreSQL简单例子

    同时,Druid还集成了监控、日志、SQL解析等功能,方便开发者进行性能调优和问题排查。 要连接到PostgreSQL数据库,我们需要以下步骤: 1. **添加依赖**:在项目的`pom.xml`文件中,添加Druid和PostgreSQL的JDBC...

    druid连接池相关jar包.zip

    4. **扩展性**:Druid提供了Filter机制,可以通过自定义Filter实现诸如日志、连接池有效性检测、慢SQL记录等功能。 5. **连接池生命周期管理**:Druid支持初始化时预创建连接,避免了系统启动时的性能瓶颈,同时...

    MyBatis 通过第三方Druid数据连接池连接SQL server 简单例子

    本教程将详细介绍如何在MyBatis中利用第三方库Druid来创建数据连接池,并以SQL Server为例进行配置和使用。 首先,我们需要理解MyBatis和Druid的基本概念。MyBatis是一个轻量级的ORM(对象关系映射)框架,它可以将...

    阿里Druid连接池技术需要的jar包

    2. **监控与日志**: Druid提供了一套完善的监控体系,包括SQL执行统计、连接池状态查看、SQL注入防护等,帮助开发者实时了解数据库操作情况,及时发现并解决问题。 3. **扩展性**: Druid支持插件化设计,例如,可以...

    SpringBoot+MyBatis+Druid连接池+JDBC官方驱动+ClickHouse

    在这个场景中,我们关注的是一个基于SpringBoot、MyBatis和Druid连接池的项目,它利用了ClickHouse的JDBC官方驱动进行数据操作。这个组合提供了强大的数据库管理和分析能力,特别适合大数据量的实时查询和分析。下面...

    阿里druid连接池1.1.21版本(支持达梦数据库)

    基于阿里的druid连接池,自己把对国产数据库达梦的支持加上去了,支持了wall方式,暂时没发现什么问题 :) 使用方式同原版

    Druid连接池方式完成用户登录所需要的jar包

    总结来说,Druid连接池是构建高性能用户登录系统的关键组件之一,其丰富的功能和优秀的性能使得它在现代Java Web应用中广受欢迎。通过理解其工作原理,合理配置和使用,可以显著提升系统的稳定性和效率。

    配置Druid连接池需要的jar包-druid-1.0.15.jar

    Druid连接池还有许多高级特性,如连接有效性检查、SQL解析、拦截器、日志集成等,可以根据实际需求进行配置。通过合理的配置和使用,Druid能帮助提升应用性能,同时提供详尽的监控信息,帮助排查和优化数据库操作。

    通过Mybatis拦截器自动定位慢SQL并记录日志

    为了有效地管理和解决这个问题,我们可以利用Mybatis的拦截器机制来自动检测并记录慢SQL。下面我们将详细介绍如何通过Mybatis拦截器实现这一功能。 首先,了解Mybatis拦截器的基本概念。Mybatis拦截器(Interceptor...

    Druid连接池以及C3P0

    它不仅提供了基础的数据库连接池功能,还包含了很多其他特性,如监控、SQL解析、日志记录等。以下是一些关键点: 1. **性能优秀**:Druid经过优化,具有较高的性能和稳定性,在连接池性能测试中表现出色。 2. **...

    spring3+hibernate4+springmvc+druid连接池

    【标题】"spring3+hibernate4+springmvc+druid连接池"是一个常见的Java Web开发中的技术栈整合,其中包含了Spring框架的三个主要组件:Spring Core、Spring MVC和Hibernate ORM,以及Druid数据库连接池。这个组合常...

    Druid简单高性能MySQL连接池

    Druid不仅提供了基础的数据库连接池功能,还集成了监控、SQL解析、参数绑定等多个高级特性,为开发人员提供了一站式的数据库访问解决方案。 首先,我们来详细了解一下Druid的核心特性: 1. **高性能**:Druid通过...

    druid数据库连接池jar包

    总的来说,Druid数据库连接池是一个强大且全面的数据库连接池解决方案,它在性能监控、安全性以及易用性方面表现出色,是Java Web开发中不可或缺的工具之一。通过合理配置和使用,可以大大提高系统的稳定性和效率。

    SpringBoot2.0整合Druid连接池详细步骤.docx

    Druid 管理后台提供了丰富的监控和管理功能,包括连接池状态、SQL 执行情况、慢查询日志等。通过 Druid 管理后台,可以实时监控数据库连接池的状态,快速定位问题。 SpringBoot2.0 整合 Druid 连接池可以提供高效、...

    druid连接池 1.1.10

    Druid连接池是阿里巴巴开源的一款高性能数据库连接池组件,版本1.1.10在众多项目中广泛使用并受到良好的反馈。这个组件的核心目标是提供监控、扩展性和性能优化的数据库连接管理服务。以下是对Druid连接池1.1.10版的...

Global site tag (gtag.js) - Google Analytics