लॉग4जे इन Selenium: Log4j Properties फ़ाइल को कैसे डाउनलोड और उपयोग करें
Log4j क्या है? Selenium?
Log4j एक तेज़, लचीला और विश्वसनीय लॉगिंग फ्रेमवर्क (APIS) है जो . में लिखा गया है Java 1996 की शुरुआत में विकसित किया गया। इसे के तहत वितरित किया जाता है अपाचे सॉफ्टवेयर लाइसेंस। Log4J को C में पोर्ट किया गया है, C++, सी#, पर्ल, Python, रूबी और एफिल भाषाएँ। यह छोटे से लेकर बड़े पैमाने पर इस्तेमाल किया जाने वाला उपकरण है Selenium स्वचालन परियोजनाएं.
Log4j का उपयोग क्यों करें?
- यह एक खुला स्रोत है
- Log4j के साथ, हमारे प्रवाह विवरण को संग्रहीत करना संभव है Selenium फ़ाइल या डेटाबेस में स्वचालन
- Log4j का उपयोग बड़े और छोटे दोनों प्रोजेक्ट के लिए किया जाता है
- Log4j में, हम किसी प्रोजेक्ट के निष्पादन के दौरान उसकी स्थिति जानने के लिए कोड में SOPL कथनों के बजाय लॉग कथनों का उपयोग करते हैं
Log4j घटक
वालों
यह जानकारी लॉग करने के लिए जिम्मेदार है। किसी प्रोजेक्ट में लॉगर्स को लागू करने के लिए निम्नलिखित चरणों का पालन करना होगा
लॉगर क्लास के लिए एक उदाहरण बनाएँ
लॉगर वर्ग एक है Java-आधारित उपयोगिता जिसमें log4j का उपयोग करने के लिए सभी सामान्य विधियाँ पहले से ही क्रियान्वित हैं
Log4j स्तर को परिभाषित करें
मुख्यतः लॉग स्तर पाँच प्रकार के होते हैं
- सभी - लॉगिंग का यह स्तर सब कुछ लॉग करेगा (यह सभी लॉग को चालू कर देता है)
- डीबग - डिबगिंग जानकारी प्रिंट करता है और विकास चरण में सहायक होता है
- INFO - आवेदन की प्रगति पर प्रकाश डालने वाला सूचनात्मक संदेश मुद्रित करें
- चेतावनी – दोषपूर्ण और अप्रत्याशित सिस्टम व्यवहार के बारे में जानकारी प्रिंट करें।
- त्रुटि - त्रुटि संदेश प्रिंट करें जो सिस्टम को जारी रखने की अनुमति दे सकता है
- घातक - सिस्टम की महत्वपूर्ण जानकारी प्रिंट करें जो एप्लिकेशन को क्रैश कर रही है
- बंद – कोई लॉगिंग नहीं
परिशिष्ट
इसका उपयोग LogEvents को उनके गंतव्य तक पहुंचाने के लिए किया जाता है। यह तय करता है कि लॉग जानकारी के साथ क्या होगा। सरल शब्दों में, इसका उपयोग लॉग को फ़ाइल में लिखने के लिए किया जाता है। निम्नलिखित कुछ प्रकार के Appenders हैं
- कंसोलएपेंडर मानक आउटपुट पर लॉग करता है
- फ़ाइल एपेंडर कुछ फ़ाइल में लॉग प्रिंट करता है
- फ़ाइल परिशिष्ट को अधिकतम आकार वाली फ़ाइल में रोल करना
नोट: लॉग4जे प्रॉपर्टीज में हम किसी भी नाम से एपेंडर को कॉल कर सकते हैं। अन्य एपेंडर भी हैं, लेकिन हम इन कुछ तक ही सीमित रहेंगे।
लेआउट
यह लॉगिंग जानकारी को विभिन्न शैलियों में प्रारूपित करने के लिए जिम्मेदार है।
लॉगर क्लास लॉगिंग गतिविधियों को संभालने के लिए अलग-अलग तरीके प्रदान करता है। यह लॉगर ऑब्जेक्ट प्राप्त करने के लिए दो स्थिर तरीके प्रदान करता है।
Public static Logger getRootLogger() Public static Logger getLogger(String name)
Log4j को कैसे कॉन्फ़िगर किया जाता है?
Log4j को कॉन्फ़िगर करने के लिए हमें यह तय करना होगा कि कौन सा एपेंडर लागू करना है। तदनुसार, एपेंडर के पैरामीटर सेट किए जाएंगे।
- हम DEBUG स्तर और RollingFileAppender का उपयोग करेंगे
- हम दो कॉन्फ़िगरेशन या लॉग करेंगे,
- पहला: रूट लॉगर, जो सभी सिस्टम जनरेटेड लॉग को फ़ाइल नाम में लिखेगा अर्थात Selenium.लॉग्स
- दूसरा: मैनुअल कमांड द्वारा उत्पन्न जानकारी को कोड में फ़ाइल नाम में लिखेंगे- Manual.logs
#रूट लॉगर
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<strong>{1}</strong>:%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” का उपयोग append फ़ंक्शन सेट करने के लिए किया जाता है। यदि इसे false पर सेट किया जाता है, तो हर बार एक नई फ़ाइल बनाई जाएगी, न कि पुरानी फ़ाइल का उपयोग लॉगिंग के लिए किया जाएगा
स्क्रिप्ट के भीतर log4j का उपयोग कैसे किया जाता है?
कोड में, हमने Logger क्लास की getLogger विधि को संदर्भित करने वाले संदर्भ चर के रूप में “log” का उपयोग किया है
Logger log = Logger.getLogger("devpinoyLogger");
हमें जो जानकारी चाहिए उसे लॉग करने के लिए “लॉग” संदर्भित चर और डीबग विधि का उपयोग करें।
log.debug("--information--");
लॉगएक्सपर्ट टूल क्या है?
- LogExpert उपकरण एक उपकरण है Windows लॉग की पूंछ के लिए विकसित
- यह निःशुल्क और खुला स्रोत लॉग व्यूअर है।
- यह एक लॉग विश्लेषण उपकरण है जिसमें लॉग को खोजना, फ़िल्टर करना, बुकमार्क करना और हाइलाइट करना जैसी कई विशेषताएं हैं
- इस टूल लॉग में, फ़ाइलें खोले जाने पर स्वचालित रूप से अपडेट हो जाती हैं
- इस टूल में, हम विभिन्न टैब में कई लॉग फ़ाइल खोल सकते हैं
- हम बुकमार्क पर टिप्पणियाँ भी डाल सकते हैं, और अलग-अलग बुकमार्क के बीच नेविगेट करने के लिए शॉर्टकट कुंजी भी है। हम पूरी बुकमार्क सूची भी देख सकते हैं और वहाँ से नेविगेट कर सकते हैं
- टूल के शॉर्टकट हेल्प फ़ाइल में दिए गए हैं ताकि उन्हें टूल का संदर्भ दिया जा सके।
Log4j का उपयोग कैसे करें? Selenium
चरण 1) In Eclipse log4j_demo नाम से एक नया प्रोजेक्ट बनाएं
चरण 2) src पर राइट क्लिक करें -> बिल्ड पथ -> बिल्ड पथ कॉन्फ़िगर करें
चरण 3) लाइब्रेरीज़ पर क्लिक करें और Log4J लाइब्रेरी जोड़ें। आप इसे यहाँ से डाउनलोड कर सकते हैं https://logging.apache.org/log4j/1.2/download.html
चरण 4) एक नई फ़ाइल बनाएँ। इस फ़ाइल में सभी log4j कॉन्फ़िगरेशन शामिल होंगे
- src -> New -> Other -> General -> File पर राइट क्लिक करें
- फ़ाइल का नाम “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 webiste"); driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); log.debug("entring 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 inchs"); 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/और बीएमआई कैलकुलेटर को सत्यापित करें। दर्ज किया गया वजन 87KG है और ऊंचाई 5 फीट 10 इंच है। स्क्रिप्ट एसई, यूएस और यूके इकाइयों में आउटपुट की जांच करती है।
Logger.getLogger(“devpinoyLogger”) का उपयोग करके हम सिस्टम स्तर लॉग बनाते हैं
Log.debug विधि का उपयोग करके हम डेटा को Manual.log में संग्रहीत करते हैं
चरण 8) स्क्रिप्ट चलाएँ। मैनुअल और Selenium लॉगिंग डेटा की जांच करने के लिए लॉग्स.
लॉगएक्सपर्ट टूल का उपयोग लॉग का विश्लेषण करने के लिए कैसे किया जा सकता है
- से टूल डाउनलोड करें https://github.com/zarunbal/LogExpert . LogExpert डाउनलोड फ़ोल्डर पर जाएँ
- LogExpert.exe खोलें
- फ़ाइल पर क्लिक करें -> खोलें और उस पथ पर ब्राउज़ करें जहां Manual.log और Selenium.log फ़ाइलें संग्रहीत हैं। फ़ाइल का चयन करें
- “फॉलो टेल” विकल्प चुनें
फ़ॉलो टेल विकल्प का चयन करने से लॉग की टेलिंग सक्षम हो जाती है, जिसका अर्थ है कि जब स्क्रिप्ट निष्पादन चरण में होती है तो LogExpert स्वचालित रूप से लॉग फ़ाइल को अपडेट कर देता है। यदि हम नोटपैड जैसे किसी अन्य संपादक का उपयोग करते हैं तो हमें लॉग को अपडेट करने के लिए फ़ाइल को बार-बार बंद करके फिर से खोलना पड़ता है। लेकिन फ़ॉलो टेल मोड में ExpertTool के साथ ऐसा करने की आवश्यकता नहीं है।
निम्नलिखित चित्र लॉग का लेआउट दिखाता है
LogExpert टूल का उपयोग करके, कोई भी सेलेनियम वेबड्राइवर द्वारा बनाए गए लॉग को डीबग कर सकता है क्योंकि इस टूल में एक बार किया जा सकता है
- किसी भी पाठ और नियमित अभिव्यक्ति के लिए खोज,
- बुकमार्क बनाएं और उन पर टिप्पणी करें और बुकमार्क के बीच नेविगेट भी कर सकते हैं जो किसी अन्य टूल में संभव नहीं है,
- लॉग को फ़िल्टर करें और पाठ श्रेणियों की खोज करें और पिछले फ़िल्टर किए गए लॉग पर एक और फ़िल्टर भी लागू कर सकते हैं,
- कुछ निश्चित शब्दों के आधार पर अलग-अलग पंक्तियों को हाइलाइट करें।
यह उपकरण डेटा को विभिन्न कॉलमों में विभाजित करने में भी मदद करता है।