有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何防止从java连接到mongodb时登录控制台?

我跟着这个{a1}。这是我的密码

public class JMongoDBCDemo
{
    MongoClient mongoClient;
    DB db;
    DBCollection coll;
    public JMongoDBCDemo()
    {
        MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
        db = mongoClient.getDB( "messenger" );
        coll = db.getCollection("users");
        DBObject myDoc = coll.findOne();
        System.out.println(myDoc);
        mongoClient.close();
        System.out.println("Got a collection...");
    }
    public static void main(String[] args){
            JMongoDBCDemo mongoDemo = new JMongoDBCDemo();
    }
}

下面是输出

Apr 05, 2015 12:17:47 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Cluster created with settings {hosts=[localhost:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
Apr 05, 2015 12:17:47 PM 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=localhost:27017, type=UNKNOWN, state=CONNECTING}]}. Waiting for 30000 ms before timing out
Apr 05, 2015 12:17:47 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Opened connection [connectionId{localValue:1, serverValue:3}] to localhost:27017
Apr 05, 2015 12:17:47 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Monitor thread successfully connected to server with description ServerDescription{address=localhost:27017, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersion{versionList=[2, 6, 1]}, minWireVersion=0, maxWireVersion=2, maxDocumentSize=16777216, roundTripTimeNanos=389140}
Apr 05, 2015 12:17:47 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Opened connection [connectionId{localValue:2, serverValue:4}] to localhost:27017
{ "_id" : { "$oid" : "55201cec68fb70b6affba026"} , "name" : "prasad" , "password" : "123456"} //This is my output
Apr 05, 2015 12:17:47 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Closed connection [connectionId{localValue:2, serverValue:4}] to localhost:27017 because the pool has been closed.
Got a collection... //my output

根据documentation的说法,它应该像

{ "_id" : { "$oid" : "55201cec68fb70b6affba026"} , "name" : "prasad" , "password" : "123456"}
Got a collection... 

所以,任何人都可以帮助我阻止控制台中的这些日志


共 (4) 个答案

  1. # 1 楼答案

    多亏了@jyemin 通过使用MongoDB official documentation链接

    Logger mongoLogger = Logger.getLogger( "org.mongodb.driver" );
    mongoLogger.setLevel(Level.SEVERE); 
    

    现在控制台中没有日志

  2. # 2 楼答案

    通过“com.mongodb.客户端.MongoClient”导入您的Mongo客户端

    import com.mongodb.client.MongoClient;
    import com.mongodb.client.MongoClients;
    
    import java.util.function.Consumer;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    
    public class Quick
    {
    
        public static void main(String[] args)
        {
            Logger.getLogger("org.mongodb.driver").setLevel(Level.WARNING);
            try (MongoClient mongo = MongoClients.create())
            {
                mongo.listDatabaseNames().forEach((Consumer<String>) System.out::println);
            }
        }
    }
    

    确保你有我写这个答案时的最新版本的驱动程序,3.12.2

    <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongo-java-driver</artifactId>
            <version>3.12.2</version>
    </dependency>
    

    如果上述方法不起作用,您可能正在使用另一个日志模块,请查看如何关闭该模块,例如,如果您正在使用slf4j,请在资源文件夹中创建一个名为“simpleLogger.properties”的文件,并将此行添加到其中

    org.slf4j.simpleLogger.defaultLogLevel = warn
    
  3. # 3 楼答案

    你可以用

    logging.level.org.mongodb.driver: ERROR
    
  4. # 4 楼答案

    我试过这个java.util.logging.Logger.getLogger("org.mongodb.driver").setLevel(Level.OFF);

    它没有工作,它仍然记录com.mongodb.diagnostics.logging.JULLogger log

    我把它改成了JULLogger,它成功了

    java.util.logging.Logger.getLogger("JULLogger").setLevel(Level.OFF);