From 60d280d089106addf5d53ff7cb174434f65ac888 Mon Sep 17 00:00:00 2001 From: wenshao Date: Tue, 7 Aug 2012 15:44:25 +0800 Subject: [PATCH] improve LogFilter --- .../druid/filter/logging/LogFilter.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/main/java/com/alibaba/druid/filter/logging/LogFilter.java b/src/main/java/com/alibaba/druid/filter/logging/LogFilter.java index 1562177d21..fd53b4b079 100644 --- a/src/main/java/com/alibaba/druid/filter/logging/LogFilter.java +++ b/src/main/java/com/alibaba/druid/filter/logging/LogFilter.java @@ -21,6 +21,8 @@ import java.sql.Types; import com.alibaba.druid.filter.FilterChain; import com.alibaba.druid.filter.FilterEventAdapter; +import com.alibaba.druid.pool.DruidDataSource; +import com.alibaba.druid.pool.DruidPooledConnection; import com.alibaba.druid.proxy.jdbc.CallableStatementProxy; import com.alibaba.druid.proxy.jdbc.ConnectionProxy; import com.alibaba.druid.proxy.jdbc.DataSourceProxy; @@ -578,5 +580,34 @@ public abstract class LogFilter extends FilterEventAdapter implements LogFilterM } } } + + @Override + public void dataSource_releaseConnection(FilterChain chain, DruidPooledConnection conn) throws SQLException { + long connectionId = -1; + + if (conn.getConnectionHolder() != null) { + ConnectionProxy connection = (ConnectionProxy) conn.getConnectionHolder().getConnection(); + connectionId = connection.getId(); + } + + chain.dataSource_recycle(conn); + + if (connectionCloseAfterLogEnable && isConnectionLogEnabled()) { + connectionLog("{conn-" + connectionId + "} pool-recycle"); + } + } + + @Override + public DruidPooledConnection dataSource_getConnection(FilterChain chain, DruidDataSource dataSource, long maxWaitMillis) throws SQLException { + DruidPooledConnection conn = chain.dataSource_connect(dataSource, maxWaitMillis); + + ConnectionProxy connection = (ConnectionProxy) conn.getConnectionHolder().getConnection(); + + if (connectionConnectAfterLogEnable && isConnectionLogEnabled()) { + connectionLog("{conn-" + connection.getId() + "} pool-connect"); + } + + return conn; + } }