2010-06-04 11 views
32

hey alle, ich fange gerade mit c3p0 für Datenbankverbindungspooling an. Es hängt sich derzeit an meine log4j-Ausgabe an. Wie setze ich die Abmeldung nur für c3p0 auf mindestens SEVERE? Ich habe versucht, die Eigenschaftendatei zu optimieren, bin mir aber nicht sicher, ob sie richtig aufgenommen wird.Wie kann ich die Anmeldung in Java c3p0 Verbindung Pooling Lib ausschalten?

irgendwelche Ideen, wie Sie es am besten ausschalten?

dank

UPDATE: diese

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

log4j.logger.com.mchange=INFO 

Antwort

20

Wenn Sie eine Datei log4j.xml verwenden Datei in den log4j.properties scheint zu funktionieren definieren Sie können einfach einen Logger für die c3po Paket:

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

Es gibt analoge Methoden für log4j.properties. Ich denke, es ist nur:

log4j.logger.com.mchange.v2.c3p0=SEVERE 
+1

Ich verwende derzeit eine log4j.properties-Datei, eine Idee, wie es dort zu tun? – James

+2

hinzugefügt ein log4j.Eigenschaften Logger Beispiel – fasseg

+0

danke! Ich musste es ein wenig zwicken aber die Datei log4j.properties funktionierte :) – James

1

Sie Protokollebene durch Zugabe von folgenden Zeilen in log4j.xml Logging zumindest auf Fehlerebene gewünscht einstellen.

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

Wenn Sie wirklich wollen c3p0 Protokollierung gesetzt Eigenschaft com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL=OFF

in c3p0-Config.properties

auszuschalten, oder Sie können dies im Code als Systemeigenschaft System.setProperty("com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL",MLevel.OFF);

+0

Funktioniert nicht für mich. –

+0

Das Hinzufügen einer zusätzlichen Zeile in der Eigenschaftendatei funktionierte für mich, 'com.mchange.v2.log.MLog = com.mchange.v2.log.FallbackMLog' –

2

direkt eingestellt Ich habe ein Problem mit der Codezeile behoben:

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

Ich benutze log4j in meiner App.

+1

Ja, das funktioniert bei mir! – surfealokesea

33

Für diejenigen, die keine Konfigurationsdatei verwenden, fügen Sie einfach Folgendes in den Code ein, bevor Sie den Verbindungspool laden.

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); 
+0

'import java.util.Properties;' – thatWiseGuy

4

ich Meldungen wie die folgende bekommen:

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 

Das machte mich denken, dass C3P0 diese Nachrichten wurde protokolliert. Eigentlich kommt die Nachricht aus dem MySQL Connector, weil ich Profilierung ermöglicht durch eine Verbindungszeichenfolge wie folgt aus:

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

?profileSQL=true entfernen, um es zu stoppen, diese Nachrichten zu protokollieren.

1

Ich arbeite an Clojure, durch Korma und für das Leben von mir konnte ich keine Eigenschaften Dateien laden (ich bin neu zu clojure so beschuldige ich mich). Wenn Sie in einem ähnlichen Boot sind, könnte das Folgende Ihnen helfen.

Das ist im Grunde ein clojure Port von Philippe Carriere Antwort oben, vielen Dank!

+1

Unter Verwendung von Korma musste ich diesen Code verwenden, bevor ich seine Namespaces anforderte. – boechat107

+0

Ja, Entschuldigung vergessen zu erwähnen, dass. Wenn Korma geladen ist, dann die Standardeinstellungen, so dass die Zeilen oben nicht überschreiben, was bereits gesetzt ist. – a4word

Verwandte Themen