ita*_*ied 18 java logging mongodb
我试图禁用日志输出mongo-java-driver-3.0.0
.
我已经尝试在加载mongo
驱动程序之前在应用程序的开头设置它们,但它没有帮助.
// Enable MongoDB logging in general
System.setProperty("DEBUG.MONGO", "false");
// Enable DB operation tracing
System.setProperty("DB.TRACE", "false");
Run Code Online (Sandbox Code Playgroud)
我得到这种日志:
11:01:15.406 [pool-1-thread-1] DEBUG org.mongodb.driver.protocol.query - Sending query of namespace susudev.Players on connection [connectionId{localValue:2, serverValue:28}] to server localhost:27017
11:01:15.406 [pool-1-thread-1] DEBUG org.mongodb.driver.protocol.query - Query completed
11:01:25.174 [cluster-ClusterId{value='554dbecb1b554f11e86c3a69', description='null'}-localhost:27017] DEBUG org.mongodb.driver.cluster - Checking status of localhost:27017
11:01:25.177 [cluster-ClusterId{value='554dbecb1b554f11e86c3a69', description='null'}-localhost:27017] DEBUG org.mongodb.driver.cluster - Updating cluster description to {type=STANDALONE, servers=[{address=localhost:27017, type=STANDALONE, roundTripTime=0.6 ms, state=CONNECTED}]
Run Code Online (Sandbox Code Playgroud)
所以我的控制台完全包含mongo日志,我无法阅读任何内容.
chn*_*eau 15
要使这部分代码正常工作,您需要具有Logback.(如果是maven项目)
<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>
Run Code Online (Sandbox Code Playgroud)
然后,如果您只想禁用Mongo驱动程序日志记录,您应该执行以下操作:
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
Logger rootLogger = loggerContext.getLogger("org.mongodb.driver");
rootLogger.setLevel(Level.OFF);
Run Code Online (Sandbox Code Playgroud)
再次要明确,以下是此代码的导入列表:
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.LoggerContext;
import org.slf4j.LoggerFactory;
Run Code Online (Sandbox Code Playgroud)
此解决方案适用于mongo java驱动程序3.0.0和^.
编辑:这是一个水平设置为ERROR的单线程.
((LoggerContext) LoggerFactory.getILoggerFactory()).getLogger("org.mongodb.driver").setLevel(Level.ERROR);
Run Code Online (Sandbox Code Playgroud)
如果需要动态方法,可以迭代记录器并设置它们的级别.或者您可以手动设置级别.这是mongo驱动程序记录器:
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);
Run Code Online (Sandbox Code Playgroud)
所以这解决了这个问题:
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);
}
Run Code Online (Sandbox Code Playgroud)
如果要隐藏所有日志,可以将其设置Level
为更高Level
.
小智 5
我已经解决了它,
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.
Run Code Online (Sandbox Code Playgroud)
如果您使用xml资源来配置Logback,则可以通过添加以下内容轻松地做到这一点:
<logger name="org.mongodb.driver.cluster" level="OFF" />
您的配置。
归档时间: |
|
查看次数: |
22475 次 |
最近记录: |