2010-06-04 4 views
32

hey tout, je commence juste avec c3p0 pour la mise en commun de la connexion à la base de données. Il s'attache à ma sortie log4j actuellement. Comment puis-je désactiver la journalisation ou au moins le niveau SEVERE uniquement pour c3p0? J'ai essayé de peaufiner le fichier de propriétés, mais je ne suis pas sûr qu'il soit récupéré correctement.comment désactiver la connexion java c3p0 connection pooling lib?

des idées sur la meilleure façon de l'éteindre?

grâce

MISE À JOUR: cela semble fonctionner dans le fichier log4j.properties

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

log4j.logger.com.mchange=INFO 

Répondre

20

Si vous utilisez un fichier log4j.xml vous pouvez simplement définir un enregistreur pour le paquet de C3PO:

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

Il existe des méthodes analogues pour log4j.properties. Je pense qu'il est juste:

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

J'utilise actuellement un fichier log4j.properties, avez-vous une idée de la façon de le faire? – James

+2

a ajouté un log4j.propriétés logger exemple – fasseg

+0

merci! J'ai dû le modifier un peu mais le fichier log4j.properties a fonctionné :) – James

1

Vous pouvez régler le niveau de journal en ajoutant des lignes suivantes dans log4j.xml Logging au moins au niveau d'erreur est souhaitée.

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

Si vous voulez vraiment désactiver la journalisation C3P0 définir la propriété com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL=OFF

dans c3p0-Config.properties

ou vous pouvez définir directement dans votre code comme une propriété du système System.setProperty("com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL",MLevel.OFF);

+0

Ne fonctionne pas pour moi. –

+0

Ajout d'une ligne supplémentaire dans le fichier de propriétés qui a fonctionné pour moi, 'com.mchange.v2.log.MLog = com.mchange.v2.log.FallbackMLog' –

2

J'ai résolu le problème avec la ligne de code:

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

J'utilise log4j dans mon application.

+1

Oui, cela fonctionne pour moi! – surfealokesea

33

Pour ceux qui n'utilisent PAS un fichier de configuration, ajoutez simplement ce qui suit dans le code avant de charger le pool de connexions.

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

Je recevais des messages comme les suivants:

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 

Cela m'a fait penser que C3P0 enregistrait ces messages. En fait, le message provient du connecteur mysql car j'ai activé le profilage à l'aide d'une chaîne de connexion comme ceci:

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

Retirez ?profileSQL=true pour le faire arrêter l'enregistrement de ces messages.

1

Je travaille sur clojure, à travers korma et pour la vie de mon je ne pouvais pas obtenir de fichiers de propriétés à charger (je suis nouveau à clojure donc je me blâme). Si vous êtes dans un bateau similaire, ce qui suit pourrait vous aider. C'est en gros un porto clojure de la réponse de Philippe Carrière, merci beaucoup!

+1

En utilisant Korma, j'avais besoin d'utiliser ce code avant d'avoir besoin de ses espaces de noms. – boechat107

+0

Oui, désolé oublié de mentionner cela. Si Korma est chargé, alors les valeurs par défaut de sorte que les lignes ci-dessus ne remplacent pas ce qui est déjà défini. – a4word

Questions connexes