3

に埋め込まれJetty 8 Serverた を使用していjetty-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>

これは、サーブレット コンテキストを介してサーブレットによって読み込まれた 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 に答える