How to disable mongoDB java driver logging? How to disable mongoDB java driver logging? mongodb mongodb

How to disable mongoDB java driver logging?


To make this portion of code working you need to have Logback. (If maven project)

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

Then if you only want to disable Mongo driver logging, you should do something like this:

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

Again to be clear, here is the list of import for this code to work:

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

This solution is for mongo java driver 3.0.0 and ^.

Edit: Here is a one liner with level set to ERROR.

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


If you need dynamic approach you can iterate over loggers and set level of them. Or you can set levels manually. Here are mongo driver loggers:

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


So this solved this issue:

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

You may set the Level to a higher Level if you wish to hide all the logs.