druid-spring xml配置sql输出

785 阅读1分钟

druid 监控

<!--连接池启用Web监控统计功能start -->
	<filter>
		<filter-name>DruidWebStatFilter</filter-name>
		<filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
		<init-param>
			<param-name>exclusions</param-name>
			<param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>DruidWebStatFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<servlet>
		<servlet-name>DruidStatView</servlet-name>
		<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>DruidStatView</servlet-name>
		<url-pattern>/druid/*</url-pattern>
	</servlet-mapping>
	<!--连接池启用Web监控统计功能end-->

配置sql输出

  • log4j

      	<Loggers>
            <Root level="info">
                <AppenderRef ref="console" />
                <AppenderRef ref="allFile" />
            </Root>
            <Logger name="druid.sql.Statement" level="trace">
                <AppenderRef ref="Console"/>
            </Logger>
        </Loggers>
    
  • xml配置

    	<!--https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_LogFilter-->
    	<bean id="log-filter" class="com.alibaba.druid.filter.logging.Log4jFilter">
    		<property name="statementExecutableSqlLogEnable" value="true" />
    	</bean>
    
    	<!-- 慢SQL记录 -->
    	<bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter">
    		<!-- 慢sql时间设置,即执行时间大于200毫秒的都是慢sql -->
    		<property name="slowSqlMillis" value="2000"/>
    		<property name="logSlowSql" value="true"/>
    	</bean>
    	
    	<!-- 配置数据库连接池 -->
    	<bean id="eDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
    		<!-- 基本属性 url、user、password -->
    		<property name="driverClassName" value="${jdbc.driver}"></property>
    		<property name="url" value="${jdbc.url}" />
    		<property name="username" value="${jdbc.user}" />
    		<property name="password" value="${jdbc.password}" />
    		<!-- 配置初始化大小、最小、最大 -->
    		<property name="initialSize" value="${jdbc.initialSize}" />
    		<property name="minIdle" value="${jdbc.minIdle}" />
    		<property name="maxActive" value="${jdbc.maxActive}" />
    		<!-- 配置获取连接等待超时的时间 -->
    		<property name="maxWait" value="${jdbc.maxWait}" />
    		<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
    		<property name="timeBetweenEvictionRunsMillis" value="${jdbc.timeBetweenEvictionRunsMillis}" />
    		<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
    		<property name="minEvictableIdleTimeMillis" value="${jdbc.minEvictableIdleTimeMillis}" />
    		<!-- 测试数据库连接 -->
    		<property name="validationQuery" value="${jdbc.validationQuery}" />
    		<property name="testWhileIdle" value="${jdbc.testWhileIdle}" />
    		<property name="testOnBorrow" value="${jdbc.testOnBorrow}" />
    		<property name="testOnReturn" value="${jdbc.testOnReturn}" />
    		<!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
    		<property name="poolPreparedStatements" value="${jdbc.poolPreparedStatements}" />
    		<property name="maxPoolPreparedStatementPerConnectionSize" value="${jdbc.maxPoolPreparedStatementPerConnectionSize}" />
    		<!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计 -->
    		<!-- %BASE_URL%/druid/index.html -->
    <!--		<property name="filters" value="stat" />-->
    		<property name="filters" value="stat,log4j" />
    
    		<property name="proxyFilters">
    			<list>
    				<ref bean="log-filter"/>
    			</list>
    		</property>
    	</bean>