Как отключить вход в библиотеку пулов соединений Java C3P0 - PullRequest
35 голосов
/ 04 июня 2010

Привет всем, я только начинаю с c3p0 для пула соединений с базой данных. В настоящее время он подключается к моему выводу log4j. Как установить выход из системы или хотя бы на уровень SEVERE только для c3p0? Я пытался настроить файл свойств, но не уверен, что он правильно подобран.

есть идеи, как лучше его отключить?

спасибо

UPDATE: похоже, это работает в файле log4j.properties

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

log4j.logger.com.mchange=INFO

Ответы [ 6 ]

35 голосов
/ 16 мая 2011

Для тех, кто НЕ использует файл конфигурации, просто добавьте следующее в код перед загрузкой пула соединений.

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);
22 голосов
/ 04 июня 2010

Если вы используете файл log4j.xml, вы можете просто определить регистратор для пакета c3po:

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

Существуют аналогичные методы для log4j.properties.Я думаю, что это просто:

log4j.logger.com.mchange.v2.c3p0=SEVERE
4 голосов
/ 12 февраля 2013

Я получал сообщения вроде следующего:

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, чтобы прекратить регистрировать эти сообщения.

2 голосов
/ 21 февраля 2011

Я исправил проблему со строкой кода:

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

Я использую log4j в своем приложении.

1 голос
/ 28 января 2015

Я работаю над clojure, через korma и всю жизнь не могу загрузить файлы свойств (я новичок в 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 голос
/ 14 января 2011

Вы можете установить уровень журнала, добавив следующие строки в 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);

...