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