Vad är Log4j?
Log4j är ett snabbt, flexibelt och pålitligt loggningsramverk (APIS) skrivet i Java som utvecklades i början av 1996. Det distribueras under Apache Software License. Log4J har överförts till språk C, C ++, C #, Perl, Python, Ruby och Eiffel. Det är ett verktyg som används för små till stora Selenium Automation-projekt.
Varför använda Log4j?
- Det är en öppen källkod
- Med Log4j är det möjligt att lagra flödesinformation för vår Selenium Automation i en fil eller databaser
- Log4j används för både stora och små projekt
- I Log4j använder vi logguttalanden snarare än SOPL-satser i koden för att känna till ett projekts status medan det körs
Log4j har tre huvudkomponenter
- Loggers : Den ansvarar för att logga information. För att implementera loggers i ett projekt måste följande steg utföras -
- Skapa en instans för loggarklass : Loggerklass är ett Java-baserat verktyg som har alla generiska metoder redan implementerade för att använda log4j
- Definiera Log4j-nivån : Det finns främst fem typer av loggnivåer
- Allt - Denna loggningsnivå loggar allt (det slår på alla loggar)
- DEBUG - skriv ut felsökningsinformationen och är till hjälp i utvecklingsstadiet
- INFO - skriv ut informationsmeddelande som lyfter fram applikationens framsteg
- VARN - skriv ut information om felaktigt och oväntat systembeteende.
- FEL - skriv ut felmeddelande som kan göra det möjligt för systemet att fortsätta
- FATAL - skriv ut systemkritisk information som får applikationen att krascha
- AV - Ingen loggning
- Appenders : Den används för att leverera LogEvents till sin destination. Den bestämmer vad som ska hända med logginformation. I enkla ord används den för att skriva loggarna i filen. Följande är några typer av Appenders
- ConsoleAppender loggar till standardutdata
- File appender skriver ut loggar till någon fil
- Rullande fil appenderar till en fil med maximal storlek
Obs! I log4j-egenskaper kan vi ringa appender med vilket namn som helst. Det finns andra appenders också, men vi kommer att begränsa till dessa få.
- Layouter : Den ansvarar för att formatera loggningsinformation i olika stilar.
Logger-klassen erbjuder olika metoder för att hantera loggningsaktiviteter. Det ger två statiska metoder för att få ett loggerobjekt.
Offentlig statisk logger getRootLogger ()Offentlig statisk logger getLogger (strängnamn)
Hur konfigureras log4j?
För att konfigurera log4j måste vi bestämma vilken appender som ska implementeras. Följaktligen kommer parametrar för appender att ställas in.
- Vi använder DEBUG-nivå och RollingFileAppender
- Vi kommer att göra två konfigurationer eller loggar,
- Först: root logger, som skriver alla systemgenererade loggar i filnamn, dvs Selenium.logs
- För det andra: Skriver informationen som genereras av manuella kommandon i kod i filnamnet - Manual.logs
- Layouten kommer att vara PatternLayout
#Root logger
log4j.rootLogger = DEBUG, fillog4j.appender.file = org.apache.log4j.RollingFileAppenderlog4j.appender.file.File = D: \\ Guru99 \\ src \\ Selen.logslog4j.appender.file.maxFileSize = 900 kBlog4j.appender.file.maxBackupIndex = 5log4j.appender.file.layout = org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern =% d {ABSOLUTE}% 5p% c {1} :% L -% m% nlog4j.appender.file.Append = false
#Application Logs
log4j.logger.devpinoyLogger = DEBUG, dest1log4j.appender.dest1 = org.apache.log4j.RollingFileAppenderlog4j.appender.dest1.maxFileSize = 900KBlog4j.appender.dest1.maxBackupIndex = 6log4j.appender.dest1.layout = org.apache.log4j.PatternLayoutlog4j.appender.dest1.layout.ConversionPattern =% d {dd / MM / åååå HH: mm: ss}% c% m% nlog4j.appender.dest1.File = D: \\ Guru99 \\ src \\ Manual.logslog4j.appender.dest1.Append = false
I exemplet ovan har vi konfigurerat log4j för att logga in på två olika filer som heter Selenium.log och Manual.log.
- fil och dest1 är de två identifierarna.
- "File" används för att ge filnamn där loggar sparas
- "maxFileSize" används för att konfigurera den maximala storleken på loggfilen. När filen når denna storlek skapas en ny fil med samma namn och det gamla filnamnet läggs till som ett index till den.
- "maxBackupIndex" används för att konfigurera maximalt antal filer som ska säkerhetskopieras.
- "layout" används för att ställa in loggfilens format.
- "Append" används för att ställa in append-funktionen. Om den är inställd på falsk, kommer varje gång en ny fil skapas snarare än gammal fil att användas för loggning
Hur log4j används i skriptet?
I kod har vi använt "logg" som en referensvariabel som refererar till getLogger-metoden för Logger Class
Logger log = Logger.getLogger ("devpinoyLogger");
Använd "logg" som referensvariabel och felsökningsmetod för att logga den information vi vill ha.
log.debug ("- information--");
Vad är ett LogExpert-verktyg?
- LogExpert-verktyget är ett verktyg för Windows utvecklat för att skräddarsy loggarna
- Det är gratis och öppen källkodslogg.
- Det är ett logganalysverktyg med flera funktioner som sökning, filtrering, bokmärkning och markering av loggarna
- I de här verktygsloggarna uppdateras filer automatiskt när de öppnas
- I det här verktyget kan vi öppna flera loggfiler i olika flikar
- Vi kan också lägga kommentarer till bokmärken, och det finns snabbtangenten för att navigera mellan olika bokmärken. Vi kan också se en fullständig bokmärkeslista och navigera därifrån
- Genvägar till verktyget ges i hjälpfilen så att de kan hänvisas till verktyget.
Steg för att använda Log4j med Selen
Steg 1) Skapa ett nytt projekt med namnet log4j_demo i Eclipse
Steg 2) Högerklicka på src -> Build Path -> Configure Build Path
Steg 2) Klicka på Bibliotek och lägg till Log4J-bibliotek. Du kan ladda ner den från https://logging.apache.org/log4j/1.2/download.html
Steg 3) Skapa en ny fil. Den här filen innehåller all log4j-konfiguration
- Högerklicka på src -> Ny -> Övrigt -> Allmänt -> Arkiv
- Ange filnamnet som "log4j.properties"
- Klicka på Slutför
Skapa ytterligare två filer och ge dem namn som Selenium.logs och Manual.logs. Dessa filer innehåller alla loggar som skapats av systemet och manuellt loggade uttalanden
Steg 4) I log4j.properties kopiera hela konfigurationen.
Steg 5) Skapa huvudklass:
- Högerklicka på standardpaketet -> Nytt -> Klass
- Ange klassnamnet och klicka på Slutför
Steg 6) Kopiera följande kod till huvudklassen
importera org.openqa.selenium.By;importera org.openqa.selenium.WebDriver;importera org.openqa.selenium.firefox.FirefoxDriver;importera org.apache.log4j.Logger;offentlig klass LoggingDemo {/ *** @param argumenterar* /public static void main (String [] args) {// TODO Auto-genererad metodstubWebDriver-drivrutin = ny FirefoxDriver ();Logger log = Logger.getLogger ("devpinoyLogger");driver.get ("http://healthunify.com/bmicalculator/");log.debug ("öppnande webblista");driver.manage (). timeouts (). implicitlyWait (20, TimeUnit.SECONDS);log.debug ("entring weight");driver.findElement (By.name ("wg")). sendKeys ("87");log.debug ("välja kilo");driver.findElement (By.name ("opt1")). sendKeys ("kilogram");log.debug ("välja höjd i fot");driver.findElement (By.name ("opt2")). sendKeys ("5");log.debug ("välja höjd i tum");driver.findElement (By.name ("opt3")). sendKeys ("10");log.debug ("Klicka på beräkna");driver.findElement (By.name ("cc")). klicka ();log.debug ("Få SIUnit-värde");Sträng SIUnit = driver.findElement (By.name ("si")). GetAttribute ("value");log.debug ("Få USUnit-värde");Sträng USUnit = driver.findElement (By.name ("us")). GetAttribute ("value");log.debug ("Få UKUnit-värde");String UKUnit = driver.findElement (By.name ("uk")). GetAttribute ("value");log.debug ("Få övergripande beskrivning");Stränganteckning = 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 ();}}
I ovanstående kod besöker vi http://healthunify.com/bmicalculator/ och verifierar BMI-kalkylatorn. Den angivna vikten är 87 kg och höjden är 5 fot 10 tum. Skriptet kontrollerar utdata i SE, USA och UK-enheter.
Med hjälp av Logger.getLogger ("devpinoyLogger") skapar vi systemloggar
Med log.debug-metoden lagrar vi data i Manual.log
Steg 7) Kör skriptet. Öppna platsen för Manuella och Selen-loggar för att kontrollera loggningsdata.
Hur LogExpert-verktyget kan användas för att analysera loggar
- Ladda ner verktyget från http://logexpert.codeplex.com/. Gå till LogExpert nedladdningsmapp
- Öppna LogExpert.exe
- Klicka på Arkiv -> Öppna och bläddra till sökvägen där Manual.log- och Selenium.log-filer lagras. Välj filen
- Välj alternativet "Följ svans"
Genom att välja följ svansalternativ kan skräddarsy loggar vilket innebär att LogExpert automatiskt uppdaterar loggfilen när skriptet är i exekveringsfas. Om vi använder någon annan redigerare som anteckningsblock måste vi stänga och öppna filen om och om igen för att uppdatera loggarna. Men med ExpertTool i Follow Tail Mode krävs det inte.
Följande bilder visar loggarnas layout
Med hjälp av LogExpert-verktyget kan man felsöka loggar som skapats av selen webdriver som i det här verktyget en gång kan
- sök efter text och reguljära uttryck,
- skapa bokmärke och kommentera dem och kan också navigera mellan bokmärken vilket inte är möjligt i något annat verktyg,
- Filtrera loggarna och sök efter textintervall och kan också använda ett annat filter på de tidigare filtrerade loggarna,
- Markera en annan rad baserat på vissa ord.
Detta verktyg hjälper också till att dela upp data i olika kolumner.