こんにちは、データベース接続プール用のc3p0を始めたばかりです。現在、自分自身をlog4j出力に添付しています。 c3p0のログのみをオフに、または少なくとも重大レベルに設定するにはどうすればよいですか?プロパティファイルを微調整してみましたが、正しく取得されているかどうかはわかりません。
それをオフにする最善の方法に関するアイデアはありますか?
ありがとう
更新:これはlog4j.propertiesファイルで機能するようです
log4j.logger.com.mchange.v2.c3p0.impl=INFO
log4j.logger.com.mchange=INFO
Log4j.xmlファイルを使用する場合、c3poパッケージのロガーを簡単に定義できます。
<logger name="com.mchange.v2.c3p0">
<level value="SEVERE"/>
</logger>
Log4j.propertiesには類似のメソッドがあります。私はそれがただだと思います:
log4j.logger.com.mchange.v2.c3p0=SEVERE
構成ファイルを使用していない場合は、接続プールをロードする前に、次のコードを追加するだけです。
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);
次のようなメッセージが表示されました。
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
これらのメッセージのロギングを停止します。
コード行の問題を修正しました:
com.mchange.v2.log.MLog.getLogger().setLevel(MLevel.INFO);
アプリでlog4jを使用しています。
私は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")))
これは基本的に、上記のフィリップキャリエールの答えの奇妙なポートです。どうもありがとうございました。
次の行を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);