3

我正在使用嵌入Jetty 8 Serverjetty-maven-plugin. 我无法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>

这是 servlet 通过 servlet 上下文加载的我的 log4j 属性文件:

log4j.rootLogger=debug, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

谢谢

4

1 回答 1

4

只需查看以下代码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));
            }
         ...
    }
}   

所以除了增加logStatementsEnabledbonecp 的设置外,还必须在log4j.properties 中将bonecp 的日志级别设置为DEBUG 或ALL。这是一个例子:

log4j.logger.com.jolbox.bonecp=DEBUG

有关 log4j 级别的详细信息。

于 2012-10-19T17:30:14.630 回答