2011-03-13 10 views
5

क्या कोई मुझे बता सकता है कि कैसे एक ठोस पैकेज से विभिन्न कक्षाओं के लिए जावा लॉगर सेट अप किया जाए?एक विशिष्ट पैकेज के लिए जावा लॉगर सेट करना

उदाहरण के लिए

: अगर मैं इस एक हो जाते हैं और इसे सेट अप

Logger logger = Logger.getLogger("com.google.api.client.*"); 
     logger.setLevel(Level.CONFIG); 
     logger.addHandler(new Handler() { 

      @Override 
      public void close() throws SecurityException { 
      } 

      @Override 
      public void flush() { 
      } 

      @Override 
      public void publish(LogRecord record) { 
       // default ConsoleHandler will take care of >= INFO 
       if (record.getLevel().intValue() < Level.INFO.intValue()) { 
        System.out.println(record.getMessage()); 
       } 
      } 
     }); 

इस

Logger.getLogger(HttpTransport.class.getName()).isLoggable(Level.CONFIG);

पुस्तकालय में

तरह की स्थिति जहां HttpTransportcom.google.api.client.*

का हिस्सा है

लेकिन समस्या यह है कि

Logger.getLogger(HttpTransport.class.getName()).isLoggable(Level.CONFIG); 

false है ... की तरह है, तो एक अलग लकड़हारा

और कैसे मैं यह एक ही पैकेज से सभी वर्गों के लिए निर्धारित करना चाहिए प्राप्त हुई थी? अगर HttpTransport जैसे ठोस वर्गों के लिए लॉगर्स की शर्तें हैं।

उत्तर

6

आप अपने पैकेज स्ट्रिंग में * * नहीं चाहते हैं। बदलें

Logger logger = Logger.getLogger("com.google.api.client.*"); 

Logger logger = Logger.getLogger("com.google.api.client"); 
+0

OMG :-) करने के लिए मैं इस एक के साथ 30 मिनट बिताए ... धन्यवाद – lisak

+0

यह 'Client.class.getName() का उपयोग करने के' के रूप में एक स्ट्रिंग की तुलना में बेहतर है कक्षा का नाम, इसलिए यदि आप रिफैक्टर करते हैं तो यह आपके लॉगिंग को तोड़ नहीं देगा। – Webnet

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