Log4j का उपयोग कैसे करें Selenium?
⚡ स्मार्ट सारांश
लॉग4जे इन Selenium यह एक तेज़, लचीला है Java यह एक लॉगिंग फ्रेमवर्क है जो ऑटोमेशन स्क्रिप्ट के फ्लो डिटेल्स को रिकॉर्ड करता है। यह कई लॉग लेवल, अपेंडर्स और लेआउट को सपोर्ट करता है और जेनरेटेड लॉग फाइलों के विश्लेषण के लिए LogExpert के साथ अच्छी तरह से काम करता है।

Log4j क्या है? Selenium?
Log4j एक तेज़, लचीला और विश्वसनीय लॉगिंग फ्रेमवर्क (एपीआई) है जिसे लिखा गया है। Java और इसे 1996 की शुरुआत में विकसित किया गया था। इसे इसके अंतर्गत वितरित किया जाता है। अपाचे सॉफ्टवेयर लाइसेंस। Log4j को C भाषा में पोर्ट किया गया है। C++, सी#, पर्ल, Pythonरूबी और आइफ़ेल जैसी भाषाएँ। यह छोटे से लेकर बड़े पैमाने के कार्यों के लिए उपयोग किया जाने वाला एक उपकरण है। Selenium स्वचालन परियोजनाएं।
Log4j का उपयोग क्यों करें?
Log4j कई व्यावहारिक लाभ प्रदान करता है Selenium परियोजनाओं:
- यह खुला स्रोत है।
- Log4j की मदद से, प्रवाह के विवरण को संग्रहीत करना संभव है। Selenium किसी फाइल या डेटाबेस में स्वचालन।
- Log4j छोटे और बड़े दोनों तरह के प्रोजेक्ट्स के लिए काम करता है।
- Log4j में, प्रोजेक्ट के निष्पादन के दौरान उसकी स्थिति जानने के लिए कोड में System.out.println स्टेटमेंट की जगह लॉग स्टेटमेंट का उपयोग किया जाता है।
Log4j घटक
वालों
लॉगर जानकारी को लॉग करने के लिए जिम्मेदार होता है। किसी प्रोजेक्ट में लॉगर को लागू करने के लिए, निम्नलिखित चरणों का पालन करना आवश्यक है।
लॉगर क्लास के लिए एक इंस्टेंस बनाएं
लॉगर क्लास एक है Javaयह एक ऐसा यूटिलिटी प्रोग्राम है जिसमें Log4j का उपयोग करने के लिए सभी सामान्य विधियां पहले से ही कार्यान्वित हैं।
Log4j स्तर को परिभाषित करें
मुख्यतः लॉग स्तर सात प्रकार के होते हैं:
- ALL – लॉगिंग का यह स्तर सब कुछ रिकॉर्ड करता है (यह सभी लॉग को चालू कर देता है)।
- DEBUG – यह डिबगिंग संबंधी जानकारी प्रिंट करता है और विकास के चरण में सहायक होता है।
- INFO – आवेदन की प्रगति को उजागर करने वाले सूचनात्मक संदेश प्रिंट करता है।
- चेतावनी – सिस्टम के दोषपूर्ण और अप्रत्याशित व्यवहार के बारे में जानकारी प्रिंट करता है।
- ERROR – त्रुटि संदेश प्रिंट करता है जिससे सिस्टम को आगे बढ़ने की अनुमति मिल सकती है।
- घातक त्रुटि – यह सिस्टम से संबंधित महत्वपूर्ण जानकारी प्रिंट करती है जिससे एप्लिकेशन क्रैश हो जाता है।
- बंद – कोई लॉगिंग नहीं।
परिशिष्ट
लॉग इवेंट्स को उनके गंतव्य तक पहुंचाने के लिए अपेंडर का उपयोग किया जाता है। यह तय करता है कि लॉग जानकारी के साथ क्या होगा। सरल शब्दों में, यह लॉग को एक फ़ाइल में लिखता है। अपेंडर के कुछ प्रकार निम्नलिखित हैं:
- ConsoleAppender मानक आउटपुट पर लॉग करता है।
- FileAppender लॉग फ़ाइलों को एक विशिष्ट फ़ाइल में प्रिंट करता है।
- RollingFileAppender अधिकतम आकार वाली फ़ाइल में लिखता है।
नोट: log4j.properties में, किसी भी नाम से अपेंडर को कॉल किया जा सकता है। अन्य अपेंडर भी हैं, लेकिन यहां हम इन्हीं कुछ पर ध्यान केंद्रित कर रहे हैं।
लेआउट
लेआउट लॉगिंग जानकारी को विभिन्न शैलियों में प्रारूपित करने के लिए जिम्मेदार है।
लॉगर क्लास लॉगिंग गतिविधियों को संभालने के लिए विभिन्न विधियाँ प्रदान करती है। यह लॉगर ऑब्जेक्ट प्राप्त करने के लिए दो स्थिर विधियाँ प्रदान करती है।
public static Logger getRootLogger()
public static Logger getLogger(String name)
Log4j को कैसे कॉन्फ़िगर किया जाता है?
Log4j को कॉन्फ़िगर करने के लिए, यह तय करें कि किस अपेंडर को लागू करना है। अपेंडर के पैरामीटर तदनुसार सेट किए जाते हैं।
- DEBUG लेवल और RollingFileAppender का उपयोग करें।
- दो कॉन्फ़िगरेशन या लॉग बनाए जाते हैं:
- सबसे पहले: एक रूट लॉगर, जो सिस्टम द्वारा जनरेट किए गए सभी लॉग को एक फ़ाइल में लिखता है जिसका नाम है Selenium.लॉग्स.
- दूसरा: एक एप्लिकेशन लॉगर, जो कोड में मैन्युअल कमांड द्वारा उत्पन्न जानकारी को Manual.logs नामक फ़ाइल में लिखता है।
- इसमें PatternLayout लेआउट का उपयोग किया गया है।
#रूट लॉगर
log4j.rootLogger=DEBUG,file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=D:\\Guru99\\src\\Selenium.logs
log4j.appender.file.maxFileSize=900KB
log4j.appender.file.maxBackupIndex=5
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.file.Append=false
#एप्लिकेशन लॉग
log4j.logger.devpinoyLogger=DEBUG, dest1
log4j.appender.dest1=org.apache.log4j.RollingFileAppender
log4j.appender.dest1.maxFileSize=900KB
log4j.appender.dest1.maxBackupIndex=6
log4j.appender.dest1.layout=org.apache.log4j.PatternLayout
log4j.appender.dest1.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss} %c %m%n
log4j.appender.dest1.File=D:\\Guru99\\src\\Manual.logs
log4j.appender.dest1.Append=false
ऊपर दिए गए उदाहरण में, Log4j को दो अलग-अलग फ़ाइलों में लॉग करने के लिए कॉन्फ़िगर किया गया है, जिनके नाम हैं Selenium.log और Manual.log.
- फ़ाइल और dest1 दो पहचानकर्ता हैं.
- "फ़ाइल" शब्द का प्रयोग उस फ़ाइल का नाम देने के लिए किया जाता है जिसमें लॉग फ़ाइलें सहेजी जाती हैं।
- “maxFileSize” का उपयोग लॉग फ़ाइल के अधिकतम आकार को निर्धारित करने के लिए किया जाता है। जब फ़ाइल इस आकार तक पहुँच जाती है, तो उसी नाम से एक नई फ़ाइल बनाई जाती है, और पुरानी फ़ाइल के नाम में एक इंडेक्स प्रत्यय जोड़ दिया जाता है।
- “maxBackupIndex” का उपयोग बैकअप लेने के लिए फ़ाइलों की अधिकतम संख्या को कॉन्फ़िगर करने के लिए किया जाता है।
- “लेआउट” का उपयोग लॉग फ़ाइल का प्रारूप सेट करने के लिए किया जाता है।
- “Append” का उपयोग अपेंड फ़ंक्शन को सेट करने के लिए किया जाता है। जब इसे false पर सेट किया जाता है, तो लॉगिंग के लिए पुरानी फ़ाइल का पुन: उपयोग करने के बजाय हर बार एक नई फ़ाइल बनाई जाती है।
स्क्रिप्ट के अंदर Log4j का उपयोग कैसे किया जाता है?
कोड में, "log" का उपयोग एक संदर्भ चर के रूप में किया जाता है जो Logger वर्ग के getLogger विधि को संदर्भित करता है।
Logger log = Logger.getLogger("devpinoyLogger");
आवश्यक जानकारी को लॉग करने के लिए "लॉग" संदर्भ चर और डीबग विधि का उपयोग करें।
log.debug("--information--");
लॉगएक्सपर्ट टूल क्या है?
लॉगएक्सपर्ट एक ऐसा टूल है जिसमें निम्नलिखित विशेषताएं हैं:
- लॉगएक्सपर्ट एक है Windows लॉग के पीछे के हिस्से को छांटने के लिए विकसित उपकरण
- यह एक निःशुल्क और ओपन सोर्स लॉग व्यूअर है।
- यह एक लॉग विश्लेषण उपकरण है जिसमें खोज, फ़िल्टरिंग, बुकमार्किंग और लॉग को हाइलाइट करने जैसी कई विशेषताएं हैं।
- इस टूल में लॉग फ़ाइलें खोलने पर वे स्वचालित रूप से अपडेट हो जाती हैं।
- एक से अधिक लॉग फाइलों को अलग-अलग टैब में खोला जा सकता है।
- बुकमार्क में टिप्पणियां जोड़ी जा सकती हैं, और एक शॉर्टकट कुंजी विभिन्न बुकमार्क के बीच नेविगेट करने की सुविधा देती है। नेविगेशन के लिए बुकमार्क की पूरी सूची उपलब्ध है।
- इस टूल के शॉर्टकट हेल्प फाइल में दिए गए हैं ताकि जरूरत पड़ने पर उनका इस्तेमाल किया जा सके।
Log4j का उपयोग कैसे करें? Selenium
चरण 1) In Eclipselog4j_demo नाम से एक नया प्रोजेक्ट बनाएं।
चरण 2) src पर राइट क्लिक करें -> बिल्ड पाथ -> बिल्ड पाथ कॉन्फ़िगर करें।
चरण 3) लाइब्रेरीज़ पर क्लिक करें और Log4j लाइब्रेरी जोड़ें। इसे यहां से डाउनलोड किया जा सकता है। https://logging.apache.org/log4j/1.2/download.html.
चरण 4) एक नई फ़ाइल बनाएँ। इस फ़ाइल में Log4j की सभी कॉन्फ़िगरेशन होंगी।
- src पर राइट क्लिक करें -> नया -> अन्य -> सामान्य -> फ़ाइल।
- फाइल का नाम “log4j.properties” रखें।
- समाप्त पर क्लिक करें।
दो और फाइलें बनाएं और उन्हें नाम दें Selenium.logs और Manual.logs फ़ाइलें। इन फ़ाइलों में सिस्टम द्वारा बनाए गए सभी लॉग और मैन्युअल रूप से लॉग किए गए स्टेटमेंट होते हैं।
चरण 5) log4j.properties में, संपूर्ण कॉन्फ़िगरेशन को कॉपी करें।
चरण 6) मुख्य क्लास बनाएं:
- डिफ़ॉल्ट पैकेज पर राइट क्लिक करें -> नया -> क्लास।
- क्लास को एक नाम दें और फिनिश पर क्लिक करें।
चरण 7) निम्नलिखित कोड को मुख्य क्लास में कॉपी करें।
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.apache.log4j.Logger;
public class LoggingDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
WebDriver driver = new FirefoxDriver();
Logger log = Logger.getLogger("devpinoyLogger");
driver.get("https://healthunify.com/bmicalculator/");
log.debug("opening website");
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
log.debug("entering weight");
driver.findElement(By.name("wg")).sendKeys("87");
log.debug("selecting kilograms");
driver.findElement(By.name("opt1")).sendKeys("kilograms");
log.debug("selecting height in feet");
driver.findElement(By.name("opt2")).sendKeys("5");
log.debug("selecting height in inches");
driver.findElement(By.name("opt3")).sendKeys("10");
log.debug("clicking on calculate");
driver.findElement(By.name("cc")).click();
log.debug("getting SIUnit value");
String SIUnit = driver.findElement(By.name("si")).getAttribute("value");
log.debug("getting USUnit value");
String USUnit = driver.findElement(By.name("us")).getAttribute("value");
log.debug("getting UKUnit value");
String UKUnit = driver.findElement(By.name("uk")).getAttribute("value");
log.debug("getting overall description");
String note = driver.findElement(By.name("desc")).getAttribute("value");
System.out.println("SIUnit = " + SIUnit);
System.out.println("USUnit = " + USUnit);
System.out.println("UKUnit = " + UKUnit);
System.out.println("note = " + note);
driver.quit();
}
}
उपरोक्त कोड में, स्क्रिप्ट निम्नलिखित स्थानों पर जाती है: https://healthunify.com/bmicalculator/ और बीएमआई कैलकुलेटर की जाँच करता है। दर्ज किया गया वज़न 87 किलोग्राम और ऊँचाई 5 फीट 10 इंच है। स्क्रिप्ट एसआई, यूएस और यूके इकाइयों में आउटपुट की जाँच करती है।
Logger.getLogger(“devpinoyLogger”) का उपयोग करके, स्क्रिप्ट सिस्टम-स्तरीय लॉग बनाती है। log.debug विधि का उपयोग करके, डेटा Manual.log में संग्रहीत किया जाता है।
चरण 8) स्क्रिप्ट चलाएँ। मैनुअल और Selenium लॉगिंग डेटा की जांच करने के लिए लॉग का उपयोग करें।
लॉगएक्सपर्ट टूल का उपयोग लॉग का विश्लेषण करने के लिए कैसे किया जा सकता है
- से टूल डाउनलोड करें https://github.com/zarunbal/LogExpertलॉगएक्सपर्ट डाउनलोड फोल्डर में जाएं।
- LogExpert.exe खोलें।
- फ़ाइल -> खोलें पर क्लिक करें और उस पथ पर जाएं जहां Manual.log और Selenium.log फाइलें संग्रहीत हैं। फ़ाइल का चयन करें।
- “फॉलो टेल” विकल्प चुनें।
फॉलो टेल विकल्प चुनने से लॉग फ़ाइलों की टेलिंग सक्षम हो जाती है, जिसका अर्थ है कि स्क्रिप्ट के निष्पादन के दौरान लॉगएक्सपर्ट स्वचालित रूप से लॉग फ़ाइल को अपडेट करता है। नोटपैड जैसे किसी अन्य एडिटर में, लॉग को अपडेट करने के लिए फ़ाइल को बार-बार बंद करके खोलना पड़ता है। लॉगएक्सपर्ट में फॉलो टेल मोड में ऐसा करने की आवश्यकता नहीं है।
नीचे दी गई तस्वीरें लकड़ियों के ढेर की बनावट को दर्शाती हैं।
लॉगएक्सपर्ट का उपयोग करके, द्वारा बनाए गए लॉग Selenium वेबड्राइवर को डिबग किया जा सकता है। इस टूल में, आप निम्न कार्य कर सकते हैं:
- किसी भी टेक्स्ट और रेगुलर एक्सप्रेशन को खोजें।
- बुकमार्क बनाएं और उन पर टिप्पणी करें, साथ ही बुकमार्क के बीच नेविगेट करें, जो किसी अन्य टूल में संभव नहीं है।
- लॉग को फ़िल्टर करें, टेक्स्ट श्रेणियों की खोज करें, और पहले से फ़िल्टर किए गए लॉग पर एक और फ़िल्टर लागू करें।
- कुछ शब्दों के आधार पर अलग-अलग पंक्तियों को हाइलाइट करें।
यह उपकरण डेटा को विभिन्न कॉलमों में विभाजित करने में भी मदद करता है।











