Настройка ведения журнала для Java-драйвера MongoDB

Могу ли я настроить драйвер Java MongoDB для вывода полезных (для отладки) сообщений, в идеале используя одну из стандартных фреймворков регистрации? Мне в основном было бы интересно увидеть каждый запрос, который гаснет, сколько данных было получено и сколько времени потребовалось, а также любые коды ошибок.

Ответ 1

Перед загрузкой любого из классов Java-драйверов MongoDB вам необходимо установить несколько системных свойств:

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

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

После этого драйвер будет использовать стандартную среду ведения журналов Java для регистрации сообщений.

К сожалению, насколько я могу судить по коду Java-драйвера, степень детализации регистрации не так уж и хороша - например, вы не можете выборочно записывать операции в определенной коллекции.

Ответ 2

Кто-нибудь еще сталкивается с этой проблемой с новой версией mongodb driver 3.x?

определить логгер для пакета драйверов mongo в log4j.properties

log4j.logger.org.mongodb.driver=INFO

com.mongodb изменился на org.mongodb.

Ответ 3

Другой способ установить уровень журнала MongoDB:

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

Вам не нужно делать это перед использованием любого из классов драйверов, вы можете в любое время установить/изменить уровни журналов.

Ответ 4

Следующая строка работает для меня,

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.