在 Eclipse 中从 MongoDB 禁用控制台日志记录
Disable Console Logging from MongoDB in Eclipse
我正在使用 Mongo 数据库来存储来自我的 Java 程序的信息。
我正在使用 Eclipse 和 MongoDB 3.0
我遇到的问题是,每当我的程序与 Mongo 进行任何交互时,它都会用来自 JULLogger 的红色文本填充控制台。
我目前没有任何代码来设置记录器级别,因为我在此处或在线其他地方找到的所有示例都给出了错误:
Logger mongoLogger = Logger.getLogger( "org.mongodb.driver" );
mongoLogger.setLevel(Level.SEVERE);
"The method getLogger(String) is undefined for the type Logger"
这是输出:
Dec 16, 2015 8:49:58 AM com.mongodb.diagnostics.logging.JULLogger log
INFO: Cluster created with settings {hosts=[127.0.0.1:27017],
mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
Dec 16, 2015 8:49:58 AM com.mongodb.diagnostics.logging.JULLogger log
INFO: No server chosen by ReadPreferenceServerSelector{readPreference=primary} from cluster description
ClusterDescription{type=UNKNOWN, connectionMode=SINGLE, all=[ServerDescription{address=127.0.0.1:27017,
type=UNKNOWN, state=CONNECTING}]}. Waiting for 30000 ms before timing out
Dec 16, 2015 8:49:58 AM com.mongodb.diagnostics.logging.JULLogger log
INFO: Opened connection [connectionId{localValue:1, serverValue:117}] to 127.0.0.1:27017
Dec 16, 2015 8:49:58 AM com.mongodb.diagnostics.logging.JULLogger log
INFO: Monitor thread successfully connected to server with description
ServerDescription{address=127.0.0.1:27017, type=STANDALONE,
state=CONNECTED, ok=true, version=ServerVersion{versionList=[3, 0, 7]},
minWireVersion=0, maxWireVersion=3, electionId=null,
maxDocumentSize=16777216, roundTripTimeNanos=587005}
Dec 16, 2015 8:49:58 AM com.mongodb.diagnostics.logging.JULLogger log
INFO: Opened connection [connectionId{localValue:2, serverValue:118}] to 127.0.0.1:27017
Document{{_id=567045259311932a6406b4e2, time=16:51:48, data=[31C, 38C, 20C]}}
Dec 16, 2015 8:49:58 AM com.mongodb.diagnostics.logging.JULLogger log
INFO: Closed connection [connectionId{localValue:2, serverValue:118}] to
127.0.0.1:27017 because the pool has been closed.
谁能告诉我如何从我的控制台中删除所有 Mongo 日志?
非常感谢罗斯的建议:
java.util.logging.Logger.getLogger("org.mongodb.driver").setLevel(java.util.logging.Level.SEVERE);
事实上正确的代码是这样的,所以只是一个小改动:
java.util.logging.Logger.getLogger("org.mongodb.driver").setLevel(Level.SEVERE);
我可以确认我在运行时不再从控制台中的 mongo 收到任何日志。
您可以尝试这个解决方案只需在您的 pom 文件中添加以下依赖项或手动添加此 jar
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.22</version>
</dependency>
阅读这些
- http://grokbase.com/t/gg/mongodb-user/153eg0pczd/deactivate-logging-in-the-java-driver
- https://www.slf4j.org/manual.html#swapping
更多更详细的解释
我遇到过类似的问题,它对我有用。
我尝试了以上所有方法,但 none worked.the 最终起作用的是
最终对我有用的如下。
LoggerContext loggerContext = (LoggerContext)LoggerFactory.getILoggerFactory();
loggerContext.getLogger("org.mongodb.driver").setLevel(Level.ERROR);
请同时注意导入:
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.LoggerContext;
import org.slf4j.LoggerFactory;
我正在使用 Mongo 数据库来存储来自我的 Java 程序的信息。 我正在使用 Eclipse 和 MongoDB 3.0 我遇到的问题是,每当我的程序与 Mongo 进行任何交互时,它都会用来自 JULLogger 的红色文本填充控制台。
我目前没有任何代码来设置记录器级别,因为我在此处或在线其他地方找到的所有示例都给出了错误:
Logger mongoLogger = Logger.getLogger( "org.mongodb.driver" );
mongoLogger.setLevel(Level.SEVERE);
"The method getLogger(String) is undefined for the type Logger"
这是输出:
Dec 16, 2015 8:49:58 AM com.mongodb.diagnostics.logging.JULLogger log
INFO: Cluster created with settings {hosts=[127.0.0.1:27017],
mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
Dec 16, 2015 8:49:58 AM com.mongodb.diagnostics.logging.JULLogger log
INFO: No server chosen by ReadPreferenceServerSelector{readPreference=primary} from cluster description
ClusterDescription{type=UNKNOWN, connectionMode=SINGLE, all=[ServerDescription{address=127.0.0.1:27017,
type=UNKNOWN, state=CONNECTING}]}. Waiting for 30000 ms before timing out
Dec 16, 2015 8:49:58 AM com.mongodb.diagnostics.logging.JULLogger log
INFO: Opened connection [connectionId{localValue:1, serverValue:117}] to 127.0.0.1:27017
Dec 16, 2015 8:49:58 AM com.mongodb.diagnostics.logging.JULLogger log
INFO: Monitor thread successfully connected to server with description
ServerDescription{address=127.0.0.1:27017, type=STANDALONE,
state=CONNECTED, ok=true, version=ServerVersion{versionList=[3, 0, 7]},
minWireVersion=0, maxWireVersion=3, electionId=null,
maxDocumentSize=16777216, roundTripTimeNanos=587005}
Dec 16, 2015 8:49:58 AM com.mongodb.diagnostics.logging.JULLogger log
INFO: Opened connection [connectionId{localValue:2, serverValue:118}] to 127.0.0.1:27017
Document{{_id=567045259311932a6406b4e2, time=16:51:48, data=[31C, 38C, 20C]}}
Dec 16, 2015 8:49:58 AM com.mongodb.diagnostics.logging.JULLogger log
INFO: Closed connection [connectionId{localValue:2, serverValue:118}] to
127.0.0.1:27017 because the pool has been closed.
谁能告诉我如何从我的控制台中删除所有 Mongo 日志?
非常感谢罗斯的建议:
java.util.logging.Logger.getLogger("org.mongodb.driver").setLevel(java.util.logging.Level.SEVERE);
事实上正确的代码是这样的,所以只是一个小改动:
java.util.logging.Logger.getLogger("org.mongodb.driver").setLevel(Level.SEVERE);
我可以确认我在运行时不再从控制台中的 mongo 收到任何日志。
您可以尝试这个解决方案只需在您的 pom 文件中添加以下依赖项或手动添加此 jar
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.22</version>
</dependency>
阅读这些
- http://grokbase.com/t/gg/mongodb-user/153eg0pczd/deactivate-logging-in-the-java-driver
- https://www.slf4j.org/manual.html#swapping
更多更详细的解释
我遇到过类似的问题,它对我有用。
我尝试了以上所有方法,但 none worked.the 最终起作用的是
最终对我有用的如下。
LoggerContext loggerContext = (LoggerContext)LoggerFactory.getILoggerFactory();
loggerContext.getLogger("org.mongodb.driver").setLevel(Level.ERROR);
请同时注意导入:
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.LoggerContext;
import org.slf4j.LoggerFactory;