<!--不采用连接池的配置-->
<appender name="DB1" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource">
<dataSource class="com.mysql.jdbc.jdbc2.optional.MysqlDataSource">
<serverName>${serverName}</serverName>
<port>${port$</port>
<databaseName>${dbName}</databaseName>
<user>${user}</user>
<password>${pass}</password>
</dataSource>
</connectionSource>
</appender>
<!-- 数据库连接池链接方式 -->
<appender name="DB2" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource">
<dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">
<driverClass>com.mysql.jdbc.Driver</driverClass>
<jdbcUrl>jdbc:mysql://localhost:3306/quartz</jdbcUrl>
<user>root</user>
<password>root</password>
</dataSource>
</connectionSource>
</appender>
<logger name="com.util.PrintUtil" level="INFO">
<appender-ref ref="DB1"/>
</logger>
表示对于PrintUtil类的INFO级别的日志采取数据库的记录方式,我采取使用的是c3p0的数据库连接池。
如果不采用连接池的方式:
向MySQL数据库发送500条记录事件耗时5秒,即每个请求10毫秒。
如果采用连接池的方式:
用这个配置,向MySQL数据库发送500条记录事件耗时0..5秒,大约每个请求1毫秒,性能提升了10倍。