क्या लॉगर को स्थिर घोषित किया जाना चाहिए या नहीं?क्या लॉगर निजी स्थिर होना चाहिए या
protected Log log = new Log4JLogger(aClass.class);
या
private static Log log = new Log4JLogger(aClass.class);
कौन सा प्रयोग किया जाना चाहिए: आमतौर पर मैं एक लकड़हारा के लिए घोषणा के दो प्रकार देखा है? दोनों के प्रो और कॉन क्या हैं?
protected Log log = new Log4JLogger(getClass());
हालांकि इसके नुकसान जाहिर है वह यह है कि:
लॉगिंग एक क्रॉस-काटने की चिंता है। पहलुओं का प्रयोग करें और सवाल मंथन है। –
'स्थिर 'प्रति वर्ग एक संदर्भ है। गैर स्थैतिक ** प्रति उदाहरण एक संदर्भ ** (+ प्रारंभिकरण) है। तो कुछ मामलों में, यदि आपके पास कई उदाहरण हैं तो उत्तरार्द्ध एक महत्वपूर्ण स्मृति प्रभाव पर आता है। एक * लगातार * ऑब्जेक्ट में गैर स्थैतिक का कभी भी उपयोग न करें। मैं हमेशा स्थिर संस्करण का उपयोग करता हूं। (जो * अपरकेज्ड * 'LOG' होना चाहिए) –
यदि आप [jcabi-log] (http://www.jcabi.com/jcabi-log/) का उपयोग करते हैं, तो आप इस वैरिएबल से छुटकारा पा सकते हैं, एक स्थिर रैपर slf4j – yegor256