2010-06-04 10 views
32

Hola a todos, recién estoy comenzando con c3p0 para la agrupación de conexiones de bases de datos. Se está adjuntando a mi salida log4j actualmente. ¿Cómo configuro el inicio de sesión o al menos al nivel SEVERE solo para c3p0? Traté de ajustar el archivo de propiedades, pero no estoy seguro de que se recogió correctamente.¿cómo desactivo el registro en java c3p0 connection pooling lib?

ideas sobre la mejor manera de apagarlo?

gracias

ACTUALIZACIÓN: esto parece funcionar en los log4j.properties presentar

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

log4j.logger.com.mchange=INFO 

Respuesta

20

Si se utiliza un archivo log4j.xml puede definir un registrador sencilla para el paquete C3PO:

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

Existen métodos análogos para log4j.properties. Creo que es justo:

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

Actualmente estoy usando un archivo log4j.properties, ¿alguna idea de cómo hacerlo allí? – James

+2

agregó un log4j.Logger de propiedades ejemplo – fasseg

+0

gracias! Tuve que modificarlo un poco, pero el archivo log4j.properties funcionó :) – James

1

Puede establecer el nivel de registro, agregue las líneas siguientes en el registro log4j.xml al menos a nivel de error que se desea.

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

Si realmente desea desactivar el registro C3p0 establecer la propiedad com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL=OFF

en c3p0-Config.properties

o se puede fijar directamente esta en el código como una propiedad Sistema System.setProperty("com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL",MLevel.OFF);

+0

No funciona para mí. –

+0

Agregar una línea adicional más en el archivo de propiedades funcionó para mí, 'com.mchange.v2.log.MLog = com.mchange.v2.log.FallbackMLog' –

2

Solucioné el problema con la línea de código:

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

Estoy usando log4j en mi aplicación.

+1

Sí, esto funciona para mí! – surfealokesea

33

Para aquellos que NO están usando un archivo de configuración, solo para agregar lo siguiente en el código, antes de cargar el grupo de conexiones.

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

que estaba recibiendo mensajes como el siguiente:

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 

Esto me hizo pensar que estaba registrando C3P0 estos mensajes. En realidad, el mensaje está llegando desde el conector de MySQL porque Habilité perfiles mediante el uso de una cadena de conexión de esta manera:

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

Retire ?profileSQL=true a hacer que se detenga la tala de estos mensajes.

1

Estoy trabajando en Clojure, a través de Korma y durante toda mi vida no pude obtener ningún archivo de propiedades para cargar (soy nuevo en Clojure, así que me culpo). Si estás en un bote similar, lo siguiente podría ayudarte.

(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"))) 

El es básicamente un puerto de clojure de la respuesta de Philippe Carriere arriba, ¡muchas gracias!

+1

Usando Korma, necesitaba usar este código antes de requerir sus espacios de nombres. – boechat107

+0

Sí, lo olvidé de mencionar eso. Si Korma está cargado, entonces los valores predeterminados de modo que las líneas de arriba no sobrescribirán lo que ya está establecido. – a4word