मैं एक परियोजना में पहली बार log4j का उपयोग कर रहा हूँ। एक साथी प्रोग्रामर ने मुझे बताया कि System.out.println
का उपयोग करना एक खराब शैली माना जाता है और log4j आजकल लॉगिंग मामलों के लिए मानक की तरह कुछ है।log4j बनाम System.out.println - लॉगर फायदे?
हम JUnit परीक्षण के बहुत सारे हैं - System.out
सामान पता चला है परीक्षण करने के लिए कठिन हो सकता है।
इसलिए मैं एक कंसोल नियंत्रक वर्ग के लिए log4j का उपयोग शुरू किया, कि सिर्फ कमांड लाइन पैरामीटर से निपटने है।
logger.debug("String");
का उत्पादन:
// log4j logger config
org.apache.log4j.BasicConfigurator.configure();
Logger logger = LoggerFactory.getLogger(Console.class);
Category cat = Category.getRoot();
काम करने के लिए लगता है
1 [main] DEBUG project.prototype.controller.Console - String
मैं इस बारे में दो पास प्रश्न: चाहिए इस लकड़हारा का उपयोग कर मेरी बुनियादी समझ से
- समर्थक टाइमस्टैम्प के साथ लॉगफाइल लिखने के लिए मुझे आरामदायक विकल्प बताएं - कंसोल को स्पैम करने की बजाय - अगर लॉगर पर डीबग मोड सक्षम है?
- System.out.println परीक्षण करने के लिए कठिन क्यों है? मैंने स्टैक ओवरफ्लो की खोज की और testing recipe पाया। तो मुझे आश्चर्य है कि लॉग 4j का उपयोग करके मुझे वास्तव में किस तरह का लाभ मिलता है।
लॉगर्स बेहद अतिरंजित हैं। 'System.out' और' System.err' आपको लॉगिंग फ्रेमवर्क के नरक के 20% के साथ कार्यक्षमता का 80% देता है। कॉमन्स लॉगिंग के संबंध में –