2012-11-22 11 views
5

मैं अपने वर्ग के लिए लकड़हारा प्राप्त करने के लिए कोशिश कर रहा हूँ:एक स्थिर संदर्भ में कक्षा के लॉगर को कैसे प्राप्त करें?

public static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(this); 

लेकिन का उपयोग कर "इस" वहाँ का कारण बनता है त्रुटि "एक स्थिर संदर्भ में इस का उपयोग नहीं कर सकते"।

कोई भी इसे ठीक करने के बारे में जानता है?

संपादित करें: मैं अपने कार्यक्रम में सभी कक्षाओं से लॉगर तक पहुंचने में सक्षम होना चाहिए, इसलिए सार्वजनिक होना चाहिए।

+0

आप Log4J उपयोग कर रहे हैं या 'java.util.logging' (' लॉगर' का पैकेज क्या है)? –

+0

@TomaszNurkiewicz मैंने 'java.util.logging' का उपयोग किया। यह स्पष्ट करने के लिए अब मेरी पोस्ट संपादित की गई। –

उत्तर

9

सूचना मैं public से private को संशोधक बदल दिया है:

public class FooBar { 

    private static final Logger log = Logger.getLogger(FooBar.class); 

    //or (if you are using java.util.logging): 

    private static final Logger log = Logger.getLogger(FooBar.class.getName()); 


} 
+1

चेकस्टाइल: कृपया लॉग इन करें कैपिटल लेटर्स "LOG" – AlexWien

+0

@AlexWien: ठीक है, वास्तव में, मैं छोटे अक्षरों को पसंद करता हूं, लेकिन मुझे समझ में आता है कि हमें 'LOG' (राजधानियों में) क्यों उपयोग करना चाहिए। –

+0

1 java.util.logging – AlexWien

6

org.appache.log4j के लिए:

private static final Logger LOG = Logger.getLogger(MyClass.class); 

java.util.Logging

लिए
private static final Logger LOG = Logger.getLogger(MyClass.class.getName()); 
+0

ध्यान दें कि वह स्पष्ट रूप से 'java.util.logging' का उपयोग कर रहा है जो' कक्षा 'को तर्क के रूप में स्वीकार नहीं करता है, केवल स्ट्रिंग्स –

+0

आपको ऐसा क्यों लगता है कि वह java.util.Logging का उपयोग कर रहा है; अधिकांश उपयोग org.appache Log4j – AlexWien

+0

यह बिल्कुल स्पष्ट नहीं है कि वह java.util.logging का उपयोग कर रहा है – Perception