2015-05-09 174 views
11

我試圖禁用mongo-java-driver-3.0.0的日誌輸出。如何禁用mongoDB java驅動程序日誌記錄?

我試圖在加載mongo驅動程序之前在我的應用程序的開始處設置這些驅動程序,但它沒有幫助。

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

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

我得到這樣的日誌:

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}] 

所以我的控制檯完全擠滿了蒙戈日誌,我不能讀什麼。

+1

你是怎麼解決這個煩人的問題的? @Candroid –

+0

@ jipr311新增了一個新答案 – itaied

+1

有誰知道,這個輸出實際上是什麼意思?也許你還可以配置集羣和連接檢查? – BairDev

回答

7

因此,這解決了這個問題:

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); 
} 

您可以設置Level到一個更高的Level如果你想隱藏的所有日誌。

+0

我不明白,是一個log4j over slf4j? ** ch.qos.logback.classic.Level; **來自哪裏? –

+0

logback庫和slf4j – itaied

6

如果您需要動態方法,您可以遍歷記錄器並設置它們的級別。或者您可以手動設置關卡。這裏是蒙戈駕駛記錄儀:

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

上午使用log4j,我通過設置log4j屬性:props.setProperty(「log4j.logger.org.mongodb.driver」,「WARN」); –

1

使用低於進口

進口java.util.logging.Logger中;

使用下面的代碼。

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

1

對於仍然面臨日誌記錄問題的病人,必須將日誌級別org.mongodb.driver設置爲WARN或ERROR等更高的值。即使它仍然寫在日誌中,com.mongodb類也不再使用。

看到這個職位的最後答案:Configure logging for the MongoDB Java driver

7

爲了使代碼的這一部分工作,你需要有的logback。 (如果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> 

然後,如果你只是想要停止蒙戈駕駛記錄,你應該做這樣的事情:

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

同樣要清楚,這裏是進口的名單此代碼工作:

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

此解決方案是爲mongo java驅動程序3.0.0和^。

編輯:這是一個水平設置爲ERROR的單行。

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

你節省了我的一天。我嘗試了一切,這是唯一有效的解決方案 – Geoffrey

0

我已經使用解決了它,

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

要關閉所有的記錄器:

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

的情況下,您使用XML資源配置的logback你可以很容易地做到這一點加入:

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

到您的配置。在我的Log4j .properties配置文件

log4j.logger.org.mongodb.driver=OFF 

0

在我的情況下,MongoDB driver 3.5.0SLF4j+Log4j12,它已經足以增加。