2012-12-07 18 views
7

बदलना मैं निष्पादन श्रृंखला में किसी बिंदु पर कुछ स्तर के संदेशों को लॉगिंग रोकने के लिए JVM को बताने में सक्षम होना चाहता हूं। कुछ बिंदु पर मैं केवल SEVERE स्तर के साथ संदेश लॉग इन करना चाहते, तो मैं ऐसा करने का सोच रहा था:जावा - गतिशील रूप से लॉगिंग स्तर

for(Enumeration<String> loggerNames = logManager.getLoggerNames(); loggerNames.hasMoreElements();){ 
     String name = loggerNames.nextElement(); 
     Logger nextLogger = logManager.getLogger(name); 
     if(nextLogger != null) 
      nextLogger.setLevel(Level.SEVERE); 
    } 

वहाँ एक ही तर्क को प्राप्त करने के एक क्लीनर तरीका अर्थात् एक वैश्विक चर कि मुद्रण जब तक प्रवेश करने के लिए बंद कर देंगे सेट है गंभीर? मुझे कंसोल आउटपुट (टेस्ट में) और लाइव आउटपुट के बीच अंतर करने की आवश्यकता है, इसलिए मैं इन स्तरों को हैंडलर (कंसोल और फाइल) पर संभावित रूप से सेट कर सकता हूं?

+0

मुझे लगता है कि आपको जावा लॉगिंग गुण फ़ाइलों की आवश्यकता है। यह जांचें http://www.javapractices.com/topic/TopicAction.do?Id=143 –

+1

नहीं, मैं डायनामिक परिवर्तन – Bober02

उत्तर

6

को खोजने के लिए अपनी स्वयं सवाल का जवाब देने Logger.getParent() का उपयोग करें:

यह ठीक है कि मैं क्या जरूरत:

Handler[] handlers = 
    Logger.getLogger("").getHandlers(); 
for (int index = 0; index < handlers.length; index++) { 
    handlers[index].setLevel(Level.SEVERE); 
} 
+0

का उपयोग करना चाहता हूं जो मेरे लिए भी काम करता है। इस शुद्ध जावा दृष्टिकोण का लाभ यह है कि मैं इसे ग्रोवी में भी कर सकता हूं, जब पुस्तकालयों के पास डिफ़ॉल्ट स्तर पर बहुत अधिक लॉगिंग होता है (मैं आपको अपाचे एसएसएचडी देख रहा हूं)। –

0

आपको गतिशील रूप से एप्लिकेशन कॉन्फ़िगरेशन को नियंत्रित करने के लिए, जेएमएक्स का उपयोग करने का एक आम तरीका है।

जेडीकोल का हिस्सा जेकोनोल, आपको मैन्युअल रूप से एमबीन को नियंत्रित करने की अनुमति देता है लेकिन आप उन्हें प्रोग्रामिक रूप से भी एक्सेस कर सकते हैं।

आप this page में वर्णित एमबीएएन को नियंत्रित करने के लिए जेएमएक्स का उपयोग कर सकते हैं।

0

log4j के साथ आप रूट लॉगर पर स्तर बदल सकते हैं।

यह काम कर सकते हैं:

logManager.getLogger("").setLevel(Level.SEVERE); 

या रूट लकड़हारा

संबंधित मुद्दे