配置MongoDB Java驱动程序的日志记录

我可以配置MongoDB Java驱动程序以输出有用(用于调试)消息,理想情况下使用标准日志框架之一吗? 我主要感兴趣的是看到每个查询结果,收到了多少数据以及花了多长时间,以及任何错误代码。

加载任何MongoDB Java驱动程序类之前,您需要设置几个系统属性:

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

执行此操作后,驱动程序将使用标准Java日志记录框架来记录消息。

不幸的是,据我所知,从Java驱动程序代码来看,日志记录粒度并不是那么好 – 例如,您无法有选择地记录特定集合上的操作。

任何人仍然面临新版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); // eg or Log.WARNING, etc. 

在使用任何驱动程序类之前,您不必执行此操作,您可以随时设置/更改日志级别。

以下线为我工作,

 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.