hey all, I'm just getting started with c3p0 for database connection pooling. It's attaching itself to my log4j output currently. How do I set logging off or at least to SEVERE level only for c3p0? I tried tweaking the properties file but not sure it's being picked up properly.
any ideas on how best to turn it off?
thanks
UPDATE: this seems to work in the log4j.properties file
log4j.logger.com.mchange.v2.c3p0.impl=INFO
log4j.logger.com.mchange=INFO 6 Answers
For those who are NOT using a configuration file, just to add the following in the code, before loading the connection pool.
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); 1 If you use a log4j.xml file you can simple define a logger for the c3po package:
<logger name="com.mchange.v2.c3p0"> <level value="SEVERE"/>
</logger>There are analogous methods for log4j.properties. I think it's just:
log4j.logger.com.mchange.v2.c3p0=SEVERE 5 I was getting messages like the following:
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: 27This made me think that C3P0 was logging these messages. Actually the message is coming from the mysql connector because I enabled profiling by using a connection string like this:
jdbc:mysql://localhost/database?profileSQL=trueRemove ?profileSQL=true to make it stop logging these messages.
I fixed problem with line of code:
com.mchange.v2.log.MLog.getLogger().setLevel(MLevel.INFO);I am using log4j in my app.
0You can set log level by adding following lines in log4j.xml Logging at least at Error level is desired.
< category name="com.mchange" additivity="false"> < priority value="ERROR"/> < appender-ref ref="ASYNC"/> </ category>If you really want to turn off c3P0 logging set property com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL=OFF
in c3p0-Config.properties
or you can directly set this in code as an System property System.setProperty("com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL",MLevel.OFF);
I am working on clojure, through korma and for the life of my I could not get any properties files to load (I am new to clojure so I blame myself). If you are in a similar boat, the following might help you out.
(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")))The is basically a clojure port of Philippe Carriere's answer above, thank you so much!
2