2012-03-03 7 views
27

क्या मैं मोंगोडीबी जावा ड्राइवर को उपयोगी आउटपुट (डीबगिंग के लिए) संदेशों को आउटपुट करने के लिए कॉन्फ़िगर कर सकता हूं, आदर्श रूप से मानक लॉगिंग फ्रेमवर्क का उपयोग करके? मैं मुख्य रूप से प्रत्येक क्वेरी को देखने में दिलचस्पी लेता हूं, कितना डेटा प्राप्त हुआ था और कितना समय लगेगा, साथ ही साथ कोई भी त्रुटि कोड। कर रही है कि ड्राइवर the standard Java logging framework का उपयोग करेगा संदेशों लॉग इन करने के बादMongoDB जावा ड्राइवर के लिए लॉगिंग कॉन्फ़िगर करें

// Enable MongoDB logging in general 
System.setProperty("DEBUG.MONGO", "true"); 

// Enable DB operation tracing 
System.setProperty("DB.TRACE", "true"); 

:

उत्तर

22

आप MongoDB जावा ड्राइवर वर्गों के किसी भी लोड हो रहा है से पहले सिस्टम गुण के एक जोड़े सेट करना होगा।

दुर्भाग्य से, जहां तक ​​मैं जावा ड्राइवर कोड से बता सकता हूं, लॉगिंग ग्रैन्युलरिटी ठीक नहीं है - उदाहरण के लिए आप किसी विशिष्ट संग्रह पर चुनिंदा लॉग ऑपरेशंस नहीं चुन सकते हैं।

+2

मेरे लिए काम करता है, ताज्जुब है कि किसी को भी स्काला में इस काम के लिए हो रही कोशिश की है, Casbah के माध्यम से जावा ड्राइवर तक पहुँचने, एक SLF4J प्रवेश एपीआई के साथ? JUL का उपयोग नहीं करते समय मेरे लॉगिंग फ्रेमवर्क में लॉग इन संदेश नहीं लग रहे हैं। – Brett

+1

मैं mongodb-spring डेटा का उपयोग कर रहा हूं लेकिन यह काम नहीं करता है, मुझे कोई लॉगिंग नहीं मिल रहा है ... – user1955934

15

एक और तरीका है MongoDB के लॉग स्तर सेट करने के लिए:

import java.util.logging.Logger; 
Logger mongoLogger = Logger.getLogger("com.mongodb"); 
mongoLogger.setLevel(Level.SEVERE); // e.g. or Log.WARNING, etc. 

आप ड्राइवर वर्गों के किसी भी उपयोग करने से पहले यह करने के लिए नहीं है, आप किसी भी समय/परिवर्तन लॉग स्तर सेट कर सकते हैं।

+2

यह लॉगर के लिए पैकेज नाम के साथ बेहतर होगा। क्या यह जुल है? SLF4j? – bmargulies

+3

कोशिश की लेकिन मेरे लिए काम नहीं करता है। क्या मोन्गो को शुरू करने या कुछ करने के बाद इसे बुलाया जाना चाहिए? –

+0

स्वयं को सुधारना, मैं स्तर सेट करने में सक्षम हूं लेकिन फ़िल्टर सेट करने में सक्षम नहीं हूं। –

16

कोई भी अभी भी इस संस्करण का सामना कर रहा है नए संस्करण mongodb ड्राइवर 3.x के साथ?

log4j.properties

log4j.logger.org.mongodb.driver=INFO 

com.mongodborg.mongodb में बदल गया है में मोंगो चालक पैकेज के लिए एक लकड़हारा परिभाषित करते हैं।

+0

मैंने इसे अपने log4j.properties में जोड़ा और जब मैं क्वेरी करता हूं तो कुछ भी नहीं होता .. मुझे अपने कस्टम लॉगिंग संदेश को छोड़कर कोई लॉगिंग नहीं दिखाई देता है .. – user1955934

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. 
संबंधित मुद्दे