2011-05-20 13 views
8

मानक जावा प्रवेश एपीआई (आयात java.util.logging.Logger) का उपयोग करना करने के लिए लॉग इन करने को निष्क्रिय निर्माण के बाद:जावा प्रवेश एपीआई,, मानक उत्पादन

Logger l = Logger.getLogger("mylogger"); 

मैं पहले से ही कुछ लॉग इन करने में सक्षम हूँ। चूंकि इसमें फ़ाइलहैंडलर नहीं है, इसलिए यह डिस्क पर कुछ भी नहीं लिखता है।

l.severe("test with no handler"); 

यह लिखने के लिए लॉग संदेश (कुछ, सभी नहीं) लिखता है। मैं इस सुविधा को कैसे अक्षम कर सकता हूं? अग्रिम Agostino

+0

l.setLevel (Level.OFF); –

उत्तर

8

सवाल उठता है कि अगर तुम नहीं जावा उपयोग लॉगिंग की डिफ़ॉल्ट कॉन्फ़िगरेशन को जानें। आर्किटेक्चरल तथ्य: 0) प्रत्येक लॉगर जो भी उसके नाम में मूल लॉगर है मूल के रूप में। डिफ़ॉल्ट तथ्य: 1) लकड़हारा संपत्ति useParentHandlers डिफ़ॉल्ट 2) द्वारा सच है जड़ लकड़हारा डिफ़ॉल्ट रूप से एक ConsoleHandler है

So. डिफ़ॉल्ट रूप से एक नया लॉगर अपने लॉग रिकॉर्ड को अपने माता-पिता (पॉइंट 1) पर भेजता है जो रूट लॉगर (पॉइंट 0) है, डिफ़ॉल्ट रूप से, उन्हें कंसोल (पॉइंट 2) पर लॉग करता है।

Logger l0 = Logger.getLogger(""); 
l0.removeHandler(l0.getHandlers()[0]); 
1

में धन्यवाद अक्षम इस सुविधा आप मतलब है कि आप कुछ भी प्रवेश करने के लिए बिल्कुल भी नहीं करना चाहती द्वारा? अगर ऐसी बात है तो आप कोई भी

उदाहरण के लिए करने के लिए कि लकड़हारा के स्तर सेट करने के लिए, आप एक प्रवेश गुण फ़ाइल उपयोग कर रहे हैं आप सेट कर सकते हैं:

mylogger.level=NONE 
+0

मुझे लगता है कि ओपी अपने मानक आउटपुट पर लॉगिंग अक्षम करना चाहता है। – asgs

+1

हां, मैं मानक आउटपुट पर लॉगिंग अक्षम करना चाहता हूं; मैं केवल हैंडलर को स्पष्ट रूप से सेट करने के लिए लॉग करना चाहता हूं। – AgostinoX

7

जावा में स्टैंडर्ड संग्रह करने वालों डिफ़ॉल्ट रूप से एक सौपानिक संरचना और बच्चे संग्रह करने वालों में हैं वारिस अपने माता-पिता का हैंडलर: के रूप में

निकालें सांत्वना प्रवेश आसान है। माता-पिता हैंडलर को इस्तेमाल होने से दबाने के लिए इसे आजमाएं:

l.setUseParentHandlers(false); 
+0

कृपया बताएं कि उत्तर देने के बजाय आपका उत्तर क्यों काम करेगा। – ArtB

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