2014-06-06 3 views
0

mongodb와 상호 작용하기 위해 mongo-java-driver-2.9.1을 사용하고 있습니다. mongodb 서버에 대한 쿼리를 기록하려고합니다. 예 : 문서를 삽입하기위한 자바 이것은 내가 이것에 대한Java에서 mongodb 쿼리 로깅

DBCollection coll = db.getCollection("mycollection"); 
    BasicDBObject doc = new BasicDBObject("name", "MongoDB") 
      .append("type", "database") 
      .append("count", 1); 
    coll.insert(doc); 

를 작성하는 코드는, MongoDB의 문서를 삽입하기위한 "몽고의"클라이언트에 해당하는 코드는 내가 이것을 기록 할

db.mycollection.insert({ 
    "name" : "MongoDB", 
    "type" : "database", 
    "count" : 1 
}) 

입니다 두 번째 코드, 그것을 할 수있는 방법이 있습니까?

+1

mongodb 서버 로그의 자세한 정보를 늘리십시오. 그것은 여러 가지 수준의 자세한 표시가 있습니다. 어떤 시점에서 로그에서 삽입 또는 쿼리를 보게됩니다. –

+0

어떻게 java 드라이버를 사용하여 자세한 정보를 설정합니까? 검색했지만 찾지 못했고 자체 로그에 쿼리를 기록하고 서버 로그를 사용하지 않으려 고합니다. 그것을 인쇄하여 사용자에게 보여주십시오. –

+0

서버의 시작 매개 변수를 변경하여 로그 상세 정보를 설정합니다. 사용자 정의 로깅에 관해서는, 데이터베이스 서버로 나가기 바로 전에 나가는 쿼리를 어딘가에 가로 채야한다고 생각합니다. 나는 자바 드라이버를 사용하지 않으므로 더 구체적인 것을 말할 수 없다. –

답변

0

MongoDB Java 드라이버가 로깅을 지원하지 않아서 로깅 메시지를 직접 작성해야한다고 생각합니다. 여기에 예 :

DBCollection coll = db.getCollection("mycollection"); 
BasicDBObject doc = new BasicDBObject("name", "MongoDB") 
     .append("type", "database") 
     .append("count", 1); 
WriteResult insert = coll.insert(doc); 
String msg = ""; 
if(insert.getError() == null){ 
    msg = "insert into: " + collection.toString() +" ; Object " + q.toString()); 
    //log the message 
} else { 
    msg = "ERROR by insert into: " + collection.toString() +" ; Object " + q.toString()); 
    msg = msg + " Error message: " + insert.getError(); 
} 
//log the message