因爲工做緣由,這裏先不說鏈接數據庫部分的配置,後面會補上,直接進入慢SQL日誌記錄。javascript
1.applicationContext.xml中增長以下配置:java
Xml代碼 mysql
![收藏代碼](http://static.javashuo.com/static/loading.gif)
- <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中配置以下:sql
Xml代碼 數據庫
![收藏代碼](http://static.javashuo.com/static/loading.gif)
- 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語句:apache
Xml代碼 app
![收藏代碼](http://static.javashuo.com/static/loading.gif)
- ......
- [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"]
- ......
有問題歡迎指正,可參考官方文檔,以官方文檔爲準。ide