logging - 配置MongoDB Java驅動程序的日誌記錄




(5)

我可以配置MongoDB Java驅動程序以輸出有用(用於調試)消息,理想情況下使用標準日誌框架之一嗎? 我主要感興趣的是看到每個查詢結果,收到了多少數據以及花了多長時間,以及任何錯誤代碼。


Answers

任何人仍然面臨新版mongodb驅動程序3.x的這個問題?

log4j.properties中為mongo驅動程序包定義一個記錄器

log4j.logger.org.mongodb.driver=INFO

com.mongodb已更改為org.mongodb


另一種設置MongoDB日誌級別的方法:

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

在使用任何驅動程序類之前,您不必執行此操作,您可以隨時設置/更改日誌級別。


加載任何MongoDB Java驅動程序類之前,您需要設置幾個系統屬性:

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

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

執行此操作後,驅動程序將使用標準Java日誌記錄框架來記錄消息。

不幸的是,據我所知,從Java驅動程序代碼來看,日誌記錄粒度並不是那麼好 - 例如,您無法有選擇地記錄特定集合上的操作。


以下線為我工作,

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.

差異可以在已經提供的鏈接中找到,但使用哪個通常歸結為“最少知識原則”。 僅允許所需的最低可見性。





java mongodb logging