मैं एक परियोजना पर काम कर रहा हूं, और वर्तमान में लॉग 4j के साथ कुछ लॉगिंग लागू करने पर काम कर रहा हूं और मैं इस बारे में उत्सुक था कि मुझे लॉग को लागू करने के बारे में कैसे जाना चाहिए।सार कक्षाओं के साथ जावा लॉगिंग
उपयोग उस वर्ग के लिए सुपर क्लास से एकल प्रवेश और सभी उप वर्गों
पहला विकल्प:
public abstract class AbstractFoo {
protected static Log LOG = LogFactory.getLog(AbstractFoo.class);
...
}
public class Foo extends AbstractFoo {
public void someMethod() {
LOG.info("Using abstract log");
}
}
दूसरा ऑप्शन
दो कार्यान्वयन मैं चारों ओर लात हूँ इस प्रकार हैंप्रत्येक वर्ग, सुपर और सबस के लिए अलग-अलग लॉग का उपयोग करें:
public abstract class AbstractFoo {
private static Log LOG = LogFactory.getLog(AbstractFoo.class);
...
}
public class Foo extends AbstractFoo {
private static Log LOG = LogFactory.getLog(Foo.class);
public void someMethod() {
LOG.info("Using own log");
}
}
क्या अधिक समझ में आता है और क्यों?
अब तक मैंने दो दृष्टिकोण देखे हैं: स्थिर लॉगर्स (प्रश्न में) और गैर स्थैतिक लॉगर्स (जैसा कि आपके उदाहरण में है)। स्थिर लॉगर्स बेहतर समाधान नहीं हैं (सभी उदाहरणों के लिए लॉगर का एक उदाहरण)? –
स्थैतिक लॉगर्स बेहतर हैं अगर वे सभी उदाहरणों के लिए समान हैं। अमूर्त वर्ग के मामले में, उदाहरणों की कक्षा सभी समान नहीं हैं। –
मुझे यह पसंद है, यह दोनों विकल्पों को गठबंधन करने का एक अच्छा तरीका प्रतीत होता है।आप एक ही लॉग के साथ समाप्त होते हैं लेकिन यह उचित वर्ग से बांधता है। +1 – shuniar