Configurar el registro para el controlador MongoDB Java

¿Puedo configurar el controlador MongoDB Java para producir mensajes útiles (para la depuración), idealmente usando uno de los marcos de registro estándar? Principalmente me interesaría ver cada consulta que sale, cuántos datos se recibieron y cuánto tiempo tomó, así como cualquier código de error.

Debe configurar un par de propiedades del sistema antes de cargar cualquiera de las clases de controlador de MongoDB Java:

// Enable MongoDB logging in general System.setProperty("DEBUG.MONGO", "true"); // Enable DB operation tracing System.setProperty("DB.TRACE", "true"); 

Después de hacer eso, el controlador utilizará el marco de registro de Java estándar para registrar mensajes.

Desafortunadamente, por lo que puedo decir del código del controlador de Java, la granularidad del registro no es del todo buena, por ejemplo, no puede registrar operaciones de forma selectiva en una colección específica.

¿Alguien todavía enfrenta este problema con la nueva versión mongodb driver 3.x?

definir un registrador para el paquete de controladores mongo en log4j.properties

 log4j.logger.org.mongodb.driver=INFO 

com.mongodb ha cambiado a org.mongodb .

Otra forma de configurar el nivel de registro de MongoDB:

 import java.util.logging.Logger; Logger mongoLogger = Logger.getLogger( "com.mongodb" ); mongoLogger.setLevel(Level.SEVERE); // eg or Log.WARNING, etc. 

No tiene que hacer esto antes de usar cualquiera de las clases de controlador, puede establecer / cambiar los niveles de registro en cualquier momento.

La siguiente línea funciona para mí,

 import java.util.logging.Logger; import java.util.logging.Level; Logger mongoLogger = Logger.getLogger( "org.mongodb.driver" ); mongoLogger.setLevel(Level.SEVERE); // eg or Log.WARNING, etc.