web-dev-qa-db-ja.com

Javaからmongodbに接続しているときにコンソールにログオンしないようにするにはどうすればよいですか?

私はこれに従いました mongodbドキュメント 。これが私のコードです

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

ドキュメント によると次のように出力されます

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

だから誰かがコンソールでこれらのログを防ぐのを手伝ってくれませんか。

12
prasad

おかげで @ jyemin を使用して MongoDB公式ドキュメント リンク

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

これで、コンソールにログはありません。

25
prasad

私はこれを試しました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);

1
ArtonBej

あなたはただ使うことができます

logging.level.org.mongodb.driver: ERROR
1
evilsoldier

「com.mongodb。client。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
0
derfect