मैं हमेशा निम्नलिखित पैटर्न का उपयोग किया है (SLF4J) वालों के निर्माण के लिए:स्थैतिक बनाम गैर स्थैतिक संदर्भों में SLF4J लॉगर्स बनाने का ओवरहेड क्या है?
private static final Logger log = LoggerFactory.getLogger(MyClass.class);
यह अब तक काम किया है, लेकिन मैं कुछ बिंदु पर static
संदर्भ और ठोस कक्षा में पारित करने के लिए जरूरत के बारे में सोच रहा था शाब्दिक सभी बजाय जैसे
private final Logger log = LoggerFactory.getLogger(getClass());
यह मूलतः कहा गया है (और जवाब) एक गैर स्थिर लकड़हारा का उपयोग करने का समय log4j
के लिए यहां से पहलेShould logger be private static or not
और यहाँ
Should be logger always final and static?
मैं final
एहसास मूल रूप से अनिवार्य है, तो मैं सोच रहा छोड़ दिया हूँ कैसे उच्च गैर स्थिर संदर्भ में SLF4J के उपयोग करने का भूमि के ऊपर वास्तव में है।
प्रश्न:
कोई महत्वपूर्ण व्यावहारिक
private final Logger log = LoggerFactory.getLogger(getClass());
का उपयोग करने का
private static final Logger log = LoggerFactory.getLogger(MyClass.class);
से अधिक औसत (वेब) अनुप्रयोग में भूमि के ऊपर है? (कोई जरूरत नहीं "के बारे में बात करने के लिए" उच्च अंत, भारी लोड यहां वेब ऐप्लिकेशन)
ध्यान दें, मैं अंत में CDI का उपयोग कर एक और भी अच्छे दृष्टिकोण का उपयोग करने
@Inject private final Logger log;
की तरह एक SLF4J लकड़हारा प्राप्त करने के लिए योजना बना रहा हूँ
जैसा कि यहां वर्णित है http://www.seamframework.org/Weld/PortableExtensionsPackage#H-TtLoggerttInjection, लेकिन मुझे पहले लॉगर कैशिंग के बारे में जानने की आवश्यकता है।
उप प्रश्न: यह भी संभव है उपयोग करने के लिए ?:
@Inject private static final Logger log;
(सिर्फ CDI के साथ शुरुआत ईमानदार होना)
ध्यान रखें, अगर आप 'getClass()' का उपयोग करते हैं तो लॉगर नाम/श्रेणी उप-वर्गों की उपस्थिति में अप्रत्याशित रूप से बदल सकती है। – Thilo
धन्यवाद। मैं वास्तव में यहां एक "लॉगर निर्माण पैटर्न" ढूंढ रहा हूं, लेकिन मुझे यह मानना है कि मैं अपने स्वयं के उपयोग के मामले के बारे में 100% निश्चित नहीं हूं, यह है कि क्या मैं संभव उप वर्गों को अपने स्वयं के लॉगर्स प्राप्त करना चाहता हूं या यदि मैं चाहता हूं एक साझा सुपर क्लास से एक का पुन: उपयोग करने के लिए। : -/ – Kawu
यदि आप [jcabi-log] (http://www.jcabi.com/jcabi-log/) का उपयोग करते हैं, तो आप इस चर से छुटकारा पा सकते हैं, slf4j – yegor256