web-dev-qa-db-ja.com

Java c3p0接続プーリングライブラリのログをオフにするにはどうすればよいですか?

こんにちは、データベース接続プール用のc3p0を始めたばかりです。現在、自分自身をlog4j出力に添付しています。 c3p0のログのみをオフに、または少なくとも重大レベルに設定するにはどうすればよいですか?プロパティファイルを微調整してみましたが、正しく取得されているかどうかはわかりません。

それをオフにする最善の方法に関するアイデアはありますか?

ありがとう

更新:これはlog4j.propertiesファイルで機能するようです

log4j.logger.com.mchange.v2.c3p0.impl=INFO

log4j.logger.com.mchange=INFO
36
James

Log4j.xmlファイルを使用する場合、c3poパッケージのロガーを簡単に定義できます。

<logger name="com.mchange.v2.c3p0">
    <level value="SEVERE"/>
</logger>

Log4j.propertiesには類似のメソッドがあります。私はそれがただだと思います:

log4j.logger.com.mchange.v2.c3p0=SEVERE
23
fasseg

構成ファイルを使用していない場合は、接続プールをロードする前に、次のコードを追加するだけです。

Properties p = new Properties(System.getProperties());
p.put("com.mchange.v2.log.MLog", "com.mchange.v2.log.FallbackMLog");
p.put("com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL", "OFF"); // Off or any other level
System.setProperties(p);
36

次のようなメッセージが表示されました。

Tue Feb 12 13:42:01 EST 2013 INFO: Profiler Event: [FETCH]  at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.Java:76) duration: 0 ms, connection-id: 67, statement-id: 23, resultset-id: 27

これにより、C3P0がこれらのメッセージをログに記録していると思いました。次のような接続文字列を使用してプロファイリングを有効にしたため、実際にはメッセージはmysqlコネクタから送信されています。

jdbc:mysql://localhost/database?profileSQL=true

削除する ?profileSQL=trueこれらのメッセージのロギングを停止します。

4
Sarel Botha

コード行の問題を修正しました:

com.mchange.v2.log.MLog.getLogger().setLevel(MLevel.INFO);

アプリでlog4jを使用しています。

2
crimean

私はkormaを通じてclojureに取り組んでいますが、私の生涯、プロパティファイルをロードすることができませんでした(私はclojureに慣れていないので、自分のせいです)。同様のボートに乗っている場合は、次のことが役立つ場合があります。

(System/setProperties 
  (doto (Java.util.Properties. (System/getProperties))
    (.put "com.mchange.v2.log.MLog" "com.mchange.v2.log.FallbackMLog")
    (.put "com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL" "OFF")))

これは基本的に、上記のフィリップキャリエールの答えの奇妙なポートです。どうもありがとうございました。

1
a4word

次の行をlog4j.xmlに追加することにより、ログレベルを設定できます。少なくともエラーレベルのログが必要です。

_< category name="com.mchange" additivity="false"> 
        < priority value="ERROR"/>
        < appender-ref ref="ASYNC"/>
     </ category>
_

本当にc3P0ロギングをオフにする場合は、プロパティ_com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL=OFF_を設定します

c3p0-Config.properties

または、これをシステムプロパティとしてコードで直接設定できますSystem.setProperty("com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL",MLevel.OFF);

1
Prashant Pandey