Log4j BoneCP不记录SQL语句
我正在使用嵌入式Log4j BoneCP不记录SQL语句,log4j,embedded-jetty,maven-jetty-plugin,bonecp,Log4j,Embedded Jetty,Maven Jetty Plugin,Bonecp,我正在使用嵌入式jetty8服务器和jettymaven插件。我无法获取BoneCP来记录执行的语句。我做错什么了吗?有什么解决办法吗 这是我的BoneCPDataSource: <New id="DSTest" class="org.eclipse.jetty.plus.jndi.Resource"> <Arg></Arg> <Arg>jdbc/DSTest</Arg> <Arg>
jetty8服务器
和jettymaven插件
。我无法获取BoneCP
来记录执行的语句。我做错什么了吗?有什么解决办法吗
这是我的BoneCPDataSource:
<New id="DSTest" class="org.eclipse.jetty.plus.jndi.Resource">
<Arg></Arg>
<Arg>jdbc/DSTest</Arg>
<Arg>
<New class="com.jolbox.bonecp.BoneCPDataSource">
<Set name="driverClass">com.mysql.jdbc.Driver</Set>
<Set name="jdbcUrl">my_url</Set>
<Set name="username">my_username</Set>
<Set name="password">my_password</Set>
<Set name="partitionCount">5</Set>
<Set name="minConnectionsPerPartition">5</Set>
<Set name="maxConnectionsPerPartition">50</Set>
<Set name="acquireIncrement">5</Set>
<Set name="idleConnectionTestPeriod">30</Set>
<Set name="logStatementsEnabled">true</Set>
</New>
</Arg>
</New>
谢谢只需查看
com.jolbox.bonecp
中的代码即可:
package com.jolbox.bonecp;
public class PreparedStatementHandle extends StatementHandle implements
PreparedStatement {
// @Override
public boolean execute() throws SQLException {
checkClosed();
try {
if (this.logStatementsEnabled && logger.isDebugEnabled()){
logger.debug(PoolUtil.fillLogParams(this.sql, this.logParams));
}
...
}
}
因此,除了为bonecp添加LogStatementEnabled
设置外,还必须在log4j.properties中打开bonecp的日志级别以进行调试或全部调试。以下是一个例子:
log4j.logger.com.jolbox.bonecp=DEBUG
哦,好吧,至少这个问题我得到了一个徽章……只是更新了javadocs,并在启动时添加了一个检查来警告这一点。(BoneCP作者)
log4j.logger.com.jolbox.bonecp=DEBUG