druid的datasource会记录下关于连接池各种信息,包括活动连接、已关闭连接、历史连接数,连接池的总连接数等等,同时支持将这些监控信息保存下来。
这个功能通过datasource的DruidDataSourceStatLogger实例statLogger来支持,DruidDataSource初始化的时候会创建一个LogStatsThread线程,这个线程每隔一定的时间就会将监控信息保存到特定位置,具体保存到哪里由statLogger决定,当然,如果需要我们可以自定义自己的DruidDataSourceStatLogger实现。
不过druid提供了一个默认的DruidDataSourceStatLogger实现——DruidDataSourceStatLoggerImpl,要使用它,我们需要为它指定一个Log(druid自己定义的Log接口)的实例抑或是Log的类名称,如果没特殊的需要,不防也直接使用druid提供的log4j实现Log4jImpl,如:
< value>druid.statlog constructor-arg>
之后配置DruidDataSource的statLogger以及log的间隔时间,如:
${database.master.url}
${database.master.username}
${database.master.password}
60000 value>
上面的druid.statlog是log4j中配置的logger名称,如:log4j.logger.druid.statlog=DEBUG, druidStat
log4j.appender.druidStat = org.