2015-05-09 21 views
11

Sto tentando di disabilitare le uscite log di mongo-java-driver-3.0.0.Come disabilitare la registrazione del driver java mongoDB?

Ho provato a impostarli all'inizio della mia applicazione, prima di caricare i driver mongo, ma non è stato di aiuto.

// Enable MongoDB logging in general 
    System.setProperty("DEBUG.MONGO", "false"); 

    // Enable DB operation tracing 
    System.setProperty("DB.TRACE", "false"); 

sto ottenendo questo tipo di tronchi:

11:01:15.406 [pool-1-thread-1] DEBUG org.mongodb.driver.protocol.query - Sending query of namespace susudev.Players on connection [connectionId{localValue:2, serverValue:28}] to server localhost:27017 
11:01:15.406 [pool-1-thread-1] DEBUG org.mongodb.driver.protocol.query - Query completed 

11:01:25.174 [cluster-ClusterId{value='554dbecb1b554f11e86c3a69', description='null'}-localhost:27017] DEBUG org.mongodb.driver.cluster - Checking status of localhost:27017 
11:01:25.177 [cluster-ClusterId{value='554dbecb1b554f11e86c3a69', description='null'}-localhost:27017] DEBUG org.mongodb.driver.cluster - Updating cluster description to {type=STANDALONE, servers=[{address=localhost:27017, type=STANDALONE, roundTripTime=0.6 ms, state=CONNECTED}] 

Quindi la mia console è completamente pieno di tronchi mongo e non posso leggere qualsiasi cosa.

+1

Come hai risolto questo fastidioso problema ?? @Candroid –

+0

@ jipr311 ha aggiunto una nuova risposta – itaied

+1

Qualcuno sa, cosa significa in realtà questa uscita? Forse puoi anche configurare il controllo del cluster e della connessione? – BairDev

risposta

7

Quindi questo risolto questo problema:

import org.slf4j.LoggerFactory; 
import ch.qos.logback.classic.Level; 
import ch.qos.logback.classic.Logger; 

... 

static Logger root = (Logger) LoggerFactory 
     .getLogger(Logger.ROOT_LOGGER_NAME); 

static { 
    root.setLevel(Level.INFO); 
} 

È possibile impostare il Level ad un più alto Level se si desidera nascondere tutti i registri.

+0

Non capisco, è un log4j su slf4j? dov'è il ** ch.qos.logback.classic.Level; ** proveniente da ?? –

+0

logback library e slf4j – itaied

6

Se è necessario un approccio dinamico, è possibile scorrere i logger e impostarne il livello. Oppure puoi impostare i livelli manualmente. Qui ci sono logger conducente mongo:

LogManager.getLogger("org.mongodb.driver.connection").setLevel(org.apache.log4j.Level.OFF); 
LogManager.getLogger("org.mongodb.driver.management").setLevel(org.apache.log4j.Level.OFF); 
LogManager.getLogger("org.mongodb.driver.cluster").setLevel(org.apache.log4j.Level.OFF); 
LogManager.getLogger("org.mongodb.driver.protocol.insert").setLevel(org.apache.log4j.Level.OFF); 
LogManager.getLogger("org.mongodb.driver.protocol.query").setLevel(org.apache.log4j.Level.OFF); 
LogManager.getLogger("org.mongodb.driver.protocol.update").setLevel(org.apache.log4j.Level.OFF); 
+1

sto usando log4j e l'ho fatto impostando la proprietà log4j: props.setProperty ("log4j.logger.org.mongodb.driver", "WARN"); –

1

utilizzare l'importazione di sotto

import java.util.logging.Logger;

utilizzare il seguente codice.

Logger mongoLogger = Logger.getLogger ("com.mongodb"); mongoLogger.setLevel (Level.SEVERE);

1

Per chi ha ancora problemi con la registrazione, è necessario impostare il livello di registro di org.mongodb.driver su un valore superiore come WARN o ERRORE. La classe com.mongodb non è più utilizzata anche se è ancora scritta nei log.

vedere l'ultima risposta di questo post: Configure logging for the MongoDB Java driver

7

per rendere questa porzione di codice di lavoro è necessario avere Logback. (se il progetto Maven)

<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-api</artifactId> 
    <version>2.9.0</version> 
</dependency> 
<dependency> 
    <groupId>ch.qos.logback</groupId> 
    <artifactId>logback-classic</artifactId> 
    <version>1.2.3</version> 
</dependency> 

Poi, se si desidera solo per disattivare la registrazione del driver Mongo, si dovrebbe fare qualcosa di simile:

LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); 
Logger rootLogger = loggerContext.getLogger("org.mongodb.driver"); 
rootLogger.setLevel(Level.OFF); 

Anche in questo caso per intenderci, ecco la lista di importazione per questo codice per funzionare:

import ch.qos.logback.classic.Level; 
import ch.qos.logback.classic.LoggerContext; 
import org.slf4j.LoggerFactory; 

Questa soluzione è per mongo java driver 3.0.0 e ^.

Modifica: questa è una fodera con livello impostato su ERRORE.

((LoggerContext) LoggerFactory.getILoggerFactory()).getLogger("org.mongodb.driver").setLevel(Level.ERROR); 
+0

Uomini mi hai salvato la giornata. Ho provato tutto e questa è l'unica soluzione che ha funzionato – Geoffrey

0

Ho risolto utilizzando,

import java.util.logging.Logger; 
import java.util.logging.Level; 

Logger mongoLogger = Logger.getLogger("org.mongodb.driver"); 
mongoLogger.setLevel(Level.SEVERE); // e.g. or Log.WARNING, etc. 
0

Per disattivare tutti i taglialegna:

final LogManager lm = LogManager.getLogManager(); 
for(final Enumeration<String> i = lm.getLoggerNames(); i.hasMoreElements();) { 
    lm.getLogger(i.nextElement()).setLevel(Level.OFF); 
} 
3

nel caso in cui l'uso delle risorse XML per configurare Logback si può facilmente farlo aggiungendo questo:

<logger name="org.mongodb.driver.cluster" level="OFF" />

alla configurazione.

0

Nel mio caso, MongoDB driver 3.5.0, SLF4j+Log4j12, è stato sufficiente l'aggiunta di:

log4j.logger.org.mongodb.driver=OFF 

nel mio file di configurazione Log4j .properties.

Problemi correlati