Log4j का उपयोग कैसे करें Selenium?

⚡ स्मार्ट सारांश

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

  • 🔘 अवयव: Log4j लॉगर, अपेंडर और लेआउट के इर्द-गिर्द बनाया गया है जो मिलकर लॉग इवेंट को कैप्चर, रूट और फॉर्मेट करते हैं। Selenium स्वचालन परियोजनाएं।
  • ️ लॉग स्तर: स्क्रिप्ट निष्पादन और डिबगिंग के दौरान कितनी जानकारी रिकॉर्ड की जाती है, इसे नियंत्रित करने के लिए सात स्तर (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF) उपलब्ध हैं।
  • ✅ अपेंडर्स: ConsoleAppender, FileAppender और RollingFileAppender यह तय करते हैं कि लॉग प्रविष्टियाँ कंसोल, एक स्थिर फ़ाइल या फ़ाइलों के एक रोलिंग सेट में जाएँगी या नहीं।
  • 🧪 विन्यास: log4j.properties फ़ाइल रूट और एप्लिकेशन लॉगर, फ़ाइल पथ, अधिकतम फ़ाइल आकार, बैकअप इंडेक्स और पैटर्न लेआउट फ़ॉर्मेटिंग नियमों को परिभाषित करती है।
  • ️ लॉग एक्सपर्ट व्यूअर: फ्री लॉगएक्सपर्ट टूल टेल्स Selenium और मैन्युअल लॉग फाइलों को वास्तविक समय में, फ़िल्टरिंग, बुकमार्किंग, हाइलाइटिंग और मल्टी-टैब व्यूइंग के साथ देखा जा सकता है।

Log4j का उपयोग कैसे करें Selenium

Log4j क्या है? Selenium?

Log4j एक तेज़, लचीला और विश्वसनीय लॉगिंग फ्रेमवर्क (एपीआई) है जिसे लिखा गया है। Java और इसे 1996 की शुरुआत में विकसित किया गया था। इसे इसके अंतर्गत वितरित किया जाता है। अपाचे सॉफ्टवेयर लाइसेंस। Log4j को C भाषा में पोर्ट किया गया है। C++, सी#, पर्ल, Pythonरूबी और आइफ़ेल जैसी भाषाएँ। यह छोटे से लेकर बड़े पैमाने के कार्यों के लिए उपयोग किया जाने वाला एक उपकरण है। Selenium स्वचालन परियोजनाएं।

Log4j का उपयोग क्यों करें?

Log4j कई व्यावहारिक लाभ प्रदान करता है Selenium परियोजनाओं:

  • यह खुला स्रोत है।
  • Log4j की मदद से, प्रवाह के विवरण को संग्रहीत करना संभव है। Selenium किसी फाइल या डेटाबेस में स्वचालन।
  • Log4j छोटे और बड़े दोनों तरह के प्रोजेक्ट्स के लिए काम करता है।
  • Log4j में, प्रोजेक्ट के निष्पादन के दौरान उसकी स्थिति जानने के लिए कोड में System.out.println स्टेटमेंट की जगह लॉग स्टेटमेंट का उपयोग किया जाता है।

Log4j घटक

Log4j घटक

वालों

लॉगर जानकारी को लॉग करने के लिए जिम्मेदार होता है। किसी प्रोजेक्ट में लॉगर को लागू करने के लिए, निम्नलिखित चरणों का पालन करना आवश्यक है।

लॉगर क्लास के लिए एक इंस्टेंस बनाएं

लॉगर क्लास एक है Javaयह एक ऐसा यूटिलिटी प्रोग्राम है जिसमें Log4j का उपयोग करने के लिए सभी सामान्य विधियां पहले से ही कार्यान्वित हैं।

Log4j स्तर को परिभाषित करें

मुख्यतः लॉग स्तर सात प्रकार के होते हैं:

  1. ALL – लॉगिंग का यह स्तर सब कुछ रिकॉर्ड करता है (यह सभी लॉग को चालू कर देता है)।
  2. DEBUG – यह डिबगिंग संबंधी जानकारी प्रिंट करता है और विकास के चरण में सहायक होता है।
  3. INFO – आवेदन की प्रगति को उजागर करने वाले सूचनात्मक संदेश प्रिंट करता है।
  4. चेतावनी – सिस्टम के दोषपूर्ण और अप्रत्याशित व्यवहार के बारे में जानकारी प्रिंट करता है।
  5. ERROR – त्रुटि संदेश प्रिंट करता है जिससे सिस्टम को आगे बढ़ने की अनुमति मिल सकती है।
  6. घातक त्रुटि – यह सिस्टम से संबंधित महत्वपूर्ण जानकारी प्रिंट करती है जिससे एप्लिकेशन क्रैश हो जाता है।
  7. बंद – कोई लॉगिंग नहीं।

परिशिष्ट

लॉग इवेंट्स को उनके गंतव्य तक पहुंचाने के लिए अपेंडर का उपयोग किया जाता है। यह तय करता है कि लॉग जानकारी के साथ क्या होगा। सरल शब्दों में, यह लॉग को एक फ़ाइल में लिखता है। अपेंडर के कुछ प्रकार निम्नलिखित हैं:

  1. ConsoleAppender मानक आउटपुट पर लॉग करता है।
  2. FileAppender लॉग फ़ाइलों को एक विशिष्ट फ़ाइल में प्रिंट करता है।
  3. 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--");

लॉगएक्सपर्ट टूल क्या है?

लॉगएक्सपर्ट एक ऐसा टूल है जिसमें निम्नलिखित विशेषताएं हैं:

  1. लॉगएक्सपर्ट एक है Windows लॉग के पीछे के हिस्से को छांटने के लिए विकसित उपकरण
  2. यह एक निःशुल्क और ओपन सोर्स लॉग व्यूअर है।
  3. यह एक लॉग विश्लेषण उपकरण है जिसमें खोज, फ़िल्टरिंग, बुकमार्किंग और लॉग को हाइलाइट करने जैसी कई विशेषताएं हैं।
  4. इस टूल में लॉग फ़ाइलें खोलने पर वे स्वचालित रूप से अपडेट हो जाती हैं।
  5. एक से अधिक लॉग फाइलों को अलग-अलग टैब में खोला जा सकता है।
  6. बुकमार्क में टिप्पणियां जोड़ी जा सकती हैं, और एक शॉर्टकट कुंजी विभिन्न बुकमार्क के बीच नेविगेट करने की सुविधा देती है। नेविगेशन के लिए बुकमार्क की पूरी सूची उपलब्ध है।
  7. इस टूल के शॉर्टकट हेल्प फाइल में दिए गए हैं ताकि जरूरत पड़ने पर उनका इस्तेमाल किया जा सके।

Log4j का उपयोग कैसे करें? Selenium

चरण 1) In Eclipselog4j_demo नाम से एक नया प्रोजेक्ट बनाएं।

Log4j इन का उपयोग करें Selenium

चरण 2) src पर राइट क्लिक करें -> बिल्ड पाथ -> बिल्ड पाथ कॉन्फ़िगर करें।

Log4j इन का उपयोग करें Selenium

चरण 3) लाइब्रेरीज़ पर क्लिक करें और Log4j लाइब्रेरी जोड़ें। इसे यहां से डाउनलोड किया जा सकता है। https://logging.apache.org/log4j/1.2/download.html.

Log4j इन का उपयोग करें Selenium

चरण 4) एक नई फ़ाइल बनाएँ। इस फ़ाइल में Log4j की सभी कॉन्फ़िगरेशन होंगी।

  1. src पर राइट क्लिक करें -> नया -> अन्य -> ​​सामान्य -> ​​फ़ाइल।
  2. फाइल का नाम “log4j.properties” रखें।
  3. समाप्त पर क्लिक करें।

दो और फाइलें बनाएं और उन्हें नाम दें Selenium.logs और Manual.logs फ़ाइलें। इन फ़ाइलों में सिस्टम द्वारा बनाए गए सभी लॉग और मैन्युअल रूप से लॉग किए गए स्टेटमेंट होते हैं।

Log4j इन का उपयोग करें Selenium

चरण 5) log4j.properties में, संपूर्ण कॉन्फ़िगरेशन को कॉपी करें।

Log4j इन का उपयोग करें Selenium

चरण 6) मुख्य क्लास बनाएं:

  1. डिफ़ॉल्ट पैकेज पर राइट क्लिक करें -> नया -> क्लास।
  2. क्लास को एक नाम दें और फिनिश पर क्लिक करें।

Log4j इन का उपयोग करें Selenium

चरण 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 लॉगिंग डेटा की जांच करने के लिए लॉग का उपयोग करें।

लॉगएक्सपर्ट टूल का उपयोग लॉग का विश्लेषण करने के लिए कैसे किया जा सकता है

  1. से टूल डाउनलोड करें https://github.com/zarunbal/LogExpertलॉगएक्सपर्ट डाउनलोड फोल्डर में जाएं।

    लॉगएक्सपर्ट टूल का उपयोग लॉग का विश्लेषण करने के लिए किया जा सकता है

  2. LogExpert.exe खोलें।
  3. फ़ाइल -> खोलें पर क्लिक करें और उस पथ पर जाएं जहां Manual.log और Selenium.log फाइलें संग्रहीत हैं। फ़ाइल का चयन करें।
  4. “फॉलो टेल” विकल्प चुनें।

    लॉगएक्सपर्ट टूल का उपयोग लॉग का विश्लेषण करने के लिए किया जा सकता है

    फॉलो टेल विकल्प चुनने से लॉग फ़ाइलों की टेलिंग सक्षम हो जाती है, जिसका अर्थ है कि स्क्रिप्ट के निष्पादन के दौरान लॉगएक्सपर्ट स्वचालित रूप से लॉग फ़ाइल को अपडेट करता है। नोटपैड जैसे किसी अन्य एडिटर में, लॉग को अपडेट करने के लिए फ़ाइल को बार-बार बंद करके खोलना पड़ता है। लॉगएक्सपर्ट में फॉलो टेल मोड में ऐसा करने की आवश्यकता नहीं है।

    नीचे दी गई तस्वीरें लकड़ियों के ढेर की बनावट को दर्शाती हैं।

    लॉगएक्सपर्ट टूल का उपयोग लॉग का विश्लेषण करने के लिए किया जा सकता है

    लॉगएक्सपर्ट टूल का उपयोग लॉग का विश्लेषण करने के लिए किया जा सकता है

लॉगएक्सपर्ट का उपयोग करके, द्वारा बनाए गए लॉग Selenium वेबड्राइवर को डिबग किया जा सकता है। इस टूल में, आप निम्न कार्य कर सकते हैं:

  • किसी भी टेक्स्ट और रेगुलर एक्सप्रेशन को खोजें।
  • बुकमार्क बनाएं और उन पर टिप्पणी करें, साथ ही बुकमार्क के बीच नेविगेट करें, जो किसी अन्य टूल में संभव नहीं है।
  • लॉग को फ़िल्टर करें, टेक्स्ट श्रेणियों की खोज करें, और पहले से फ़िल्टर किए गए लॉग पर एक और फ़िल्टर लागू करें।
  • कुछ शब्दों के आधार पर अलग-अलग पंक्तियों को हाइलाइट करें।

यह उपकरण डेटा को विभिन्न कॉलमों में विभाजित करने में भी मदद करता है।

अक्सर पूछे जाने वाले प्रश्न

Log4j 1.x का सपोर्ट 2015 में समाप्त हो गया था और यह कॉन्फ़िगरेशन के लिए प्रॉपर्टीज़ या XML फ़ाइल का उपयोग करता था। Log4j 2.x बेहतर प्रदर्शन, अतुल्यकालिक लॉगर, लैम्डा सपोर्ट और Log4Shell पैच के बाद बेहतर सुरक्षा प्रदान करता है, जिससे यह नए प्रोजेक्ट्स के लिए अनुशंसित विकल्प बन जाता है।

Log4j कॉन्फ़िगर करने योग्य लॉग स्तरों, स्थायी फ़ाइल आउटपुट, रोलिंग बैकअप और संरचित पैटर्न का समर्थन करता है। System.out.println केवल कंसोल पर लिखता है और इसे फ़िल्टर या संग्रहीत नहीं किया जा सकता है। Log4j बनाता है Selenium परीक्षण परिणामों की छँटाई, ऑडिट और पुनरुत्पादन करना आसान हो जाता है।

जी हां। एआई सहायक बड़े लॉग4जे आउटपुट का विश्लेषण कर सकते हैं, बार-बार होने वाली विफलताओं को समूहित कर सकते हैं और मूल कारण पैटर्न को उजागर कर सकते हैं। Selenium रन। वे अस्थिर लोकेटर, धीमे चरणों और स्टैक को उजागर करते हैं। tracजी हां, कच्चे लॉग लाइनों को क्यूए इंजीनियरों के लिए प्राथमिकता वाले कार्रवाई मदों में परिवर्तित करना।

एआई-आधारित ऑब्जर्वेबिलिटी प्लेटफॉर्म Log4j स्ट्रीम को ग्रहण करते हैं, वास्तविक समय में विसंगतियों का पता लगाते हैं और उपयोगकर्ताओं पर प्रभाव पड़ने से पहले ही विफलताओं की भविष्यवाणी करते हैं। मशीन लर्निंग मॉडल गंभीरता का आकलन करते हैं, अनावश्यक घटनाओं को हटाते हैं और स्मार्ट अलर्ट ट्रिगर करते हैं, जिससे मैन्युअल grep वर्कफ़्लो को सक्रिय निगरानी से प्रतिस्थापित किया जा सकता है।

नहीं। लॉगएक्सपर्ट एक लोकप्रिय निःशुल्क सेवा है। Windows टेल-फॉलो और फ़िल्टरिंग की सुविधा वाला व्यूअर, लेकिन इसके विकल्पों में बेयरटेल, ग्लॉग, क्लॉग और स्प्लंक जैसे पूर्ण प्लेटफ़ॉर्म शामिल हैं। Graylogया फिर कई मशीनों में केंद्रीकृत विश्लेषण के लिए ELK स्टैक का उपयोग किया जा सकता है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: