Hvad er Log4j?
Log4j er en hurtig, fleksibel og pålidelig logningsramme (APIS) skrevet i Java udviklet i begyndelsen af 1996. Den distribueres under Apache-softwarelicensen. Log4J er blevet portet til sprogene C, C ++, C #, Perl, Python, Ruby og Eiffel. Det er et værktøj, der bruges til små til store Selenium Automation-projekter.
Hvorfor bruge Log4j?
- Det er en open source
- Med Log4j er det muligt at gemme flowdetaljerne for vores Selenium Automation i en fil eller databaser
- Log4j bruges til store såvel som små projekter
- I Log4j bruger vi logsætninger i stedet for SOPL-sætninger i koden for at kende status for et projekt, mens det udføres
Log4j har tre hovedkomponenter
- Loggere : Det er ansvarligt for logning af oplysninger. For at implementere loggere i et projekt skal følgende trin udføres -
- Opret en instans til logger klasse : Logger klasse er et Java-baseret værktøj, der har fået alle de generiske metoder allerede implementeret til at bruge log4j
- Definer Log4j-niveauet : Der er primært fem slags logniveauer
- Alt - Dette logningsniveau logger alt (det tænder alle logfiler)
- DEBUG - udskriv fejlretningsoplysningerne og er nyttige i udviklingsfasen
- INFO - udskriv informativ besked, der fremhæver applikationens forløb
- ADVARSEL - udskriv oplysninger om defekt og uventet systemadfærd.
- FEJL - udskriv fejlmeddelelse, der muligvis tillader, at systemet fortsætter
- FATAL - udskriv kritiske oplysninger om systemet, der får applikationen til at gå ned
- FRA - Ingen logning
- Appenders : Det bruges til at levere LogEvents til deres destination. Det bestemmer, hvad der skal ske med logoplysninger. I enkle ord bruges det til at skrive logfilerne i filen. Følgende er få typer af Appenders
- ConsoleAppender logger på standardoutput
- File appender udskriver logfiler til en eller anden fil
- Rolling file appender til en fil med maksimal størrelse
Bemærk: I log4j-egenskaber kan vi kalde appender med ethvert navn. Der er også andre appenders, men vi begrænser os til disse få.
- Layouts : Det er ansvarligt for formatering af loggeoplysninger i forskellige stilarter.
Logger-klassen giver forskellige metoder til at håndtere logningsaktiviteter. Det giver to statiske metoder til at opnå et loggerobjekt.
Offentlig statisk logger getRootLogger ()Offentlig statisk logger getLogger (strengnavn)
Hvordan konfigureres log4j?
For at konfigurere log4j skal vi beslutte, hvilken appender der skal implementeres. Følgelig indstilles parametre for appender.
- Vi bruger DEBUG-niveau og RollingFileAppender
- Vi laver to konfigurationer eller logfiler,
- Først: rodlogger, der skriver alle systemgenererede logfiler i filnavne, dvs. Selenium.logs
- Andet: Skriver de oplysninger, der genereres af manuelle kommandoer i kode, ind i filnavnet - Manual.logs
- Layout vil være mønsterlayout
#Rot 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 = 900 KBlog4j.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 ovenstående eksempel har vi konfigureret log4j til at logge på to forskellige filer med navnet Selenium.log og Manual.log.
- fil og dest1 er de to identifikatorer.
- "File" bruges til at give filnavn, hvor logfiler gemmes
- "maxFileSize" bruges til at konfigurere den maksimale størrelse på logfilen. Når filen når denne størrelse, oprettes der en ny fil med samme navn, og det gamle filnavn føjes som et indeks til den.
- "maxBackupIndex" bruges til at konfigurere det maksimale antal filer, der skal sikkerhedskopieres.
- "layout" bruges til at indstille formatet for logfilen.
- "Append" bruges til at indstille append-funktion. Hvis den er indstillet til falsk, vil hver gang der oprettes en ny fil i stedet for den gamle fil bruges til logning
Hvordan bruges log4j i scriptet?
I kode har vi brugt "log" som en referencevariabel, der refererer til getLogger-metoden i Logger Class
Logger log = Logger.getLogger ("devpinoyLogger");
Brug "log", der refererer til variabel og fejlretningsmetode til at logge de oplysninger, vi ønsker.
log.debug ("- information--");
Hvad er et LogExpert-værktøj?
- LogExpert-værktøjet er et værktøj til Windows, der er udviklet til at hale logfiler
- Det er gratis og open source-logfremviser.
- Det er et loganalyseværktøj med flere funktioner som søgning, filtrering, bogmærkning og fremhævning af logfiler
- I dette værktøjslogfiler opdateres filer automatisk, når de åbnes
- I dette værktøj kan vi åbne flere logfiler i forskellige faner
- Vi kan også kommentere bogmærker, og der er genvejstasten til at navigere mellem forskellige bogmærker. Vi kan også se en komplet bogmærkeliste og navigere derfra
- Genveje til værktøjet findes i hjælpefilen, så de kan henvises til værktøjet.
Skridt til at bruge Log4j med Selen
Trin 1) I Eclipse skal du oprette et nyt projekt med navnet log4j_demo
Trin 2) Højreklik på src -> Build Path -> Configure Build Path
Trin 2) Klik på Biblioteker og tilføj Log4J-bibliotek. Du kan downloade det fra https://logging.apache.org/log4j/1.2/download.html
Trin 3) Opret en ny fil. Denne fil inkluderer al log4j-konfiguration
- Højreklik på src -> Ny -> Andet -> Generelt -> Fil
- Giv filnavnet som "log4j.properties"
- Klik på Udfør
Opret yderligere to filer, og giv dem navne som Selenium.logs og Manual.logs. Disse filer vil indeholde alle de logfiler, der er oprettet af systemet og manuelt loggede udsagn
Trin 4) Kopier hele konfigurationen i log4j.properties.
Trin 5) Opret hovedklasse:
- Højreklik på standardpakke -> Ny -> Klasse
- Giv klassenavnet og klik på finish
Trin 6) Kopier følgende kode ind til hovedklassen
importer org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.apache.log4j.Logger;offentlig klasse LoggingDemo {/ *** @param argumenterer* /public static void main (String [] args) {// TODO Auto-genereret metodestubWebDriver-driver = ny FirefoxDriver ();Logger log = Logger.getLogger ("devpinoyLogger");driver.get ("http://healthunify.com/bmicalculator/");log.debug ("åbning af webiste");driver.manage (). timeouts (). implicitWait (20, TimeUnit.SECONDS);log.debug ("entring weight");driver.findElement (By.name ("wg")). sendKeys ("87");log.debug ("valg af kilogram");driver.findElement (By.name ("opt1")) sendKeys ("kilograms");log.debug ("valg af højde i fødder");driver.findElement (By.name ("opt2")). sendKeys ("5");log.debug ("vælg højde i tomme");driver.findElement (By.name ("opt3")). sendKeys ("10");log.debug ("Klik på beregne");driver.findElement (By.name ("cc")). klik ();log.debug ("Få SIUnit-værdi");String SIUnit = driver.findElement (By.name ("si")). GetAttribute ("value");log.debug ("Få USUnit-værdi");Streng USUnit = driver.findElement (By.name ("os")). GetAttribute ("værdi");log.debug ("Få UKUnit-værdi");String UKUnit = driver.findElement (By.name ("uk")). GetAttribute ("value");log.debug ("Få samlet beskrivelse");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 ();}}
I ovenstående kode besøger vi http://healthunify.com/bmicalculator/og verificerer BMI-regnemaskine. Den indtastede vægt er 87 kg og højden er 5 fod 10 inches. Scriptet kontrollerer output i SE, USA og UK enheder.
Ved hjælp af Logger.getLogger ("devpinoyLogger") opretter vi logfiler på systemniveau
Ved hjælp af log.debug-metoden gemmer vi data i Manual.log
Trin 7) Kør scriptet. Åbn placeringen af manuelle og selen logfiler for at kontrollere logdata.
Hvordan LogExpert-værktøjet kan bruges til at analysere logfiler
- Download værktøjet fra http://logexpert.codeplex.com/. Gå til LogExpert-downloadmappe
- Åbn LogExpert.exe
- Klik på Fil -> Åbn og gennemse den sti, hvor Manual.log- og Selenium.log-filer er gemt. Vælg filen
- Vælg indstillingen "Følg hale"
Valg af follow tail-mulighed muliggør tailing af logfiler, hvilket betyder, at LogExpert automatisk opdaterer logfilen, når scriptet er i eksekveringsfase. Hvis vi bruger en anden editor som notesblok, skal vi lukke og genåbne filen igen og igen for at opdatere logfilerne. Men med ExpertTool i Follow Tail Mode er dette ikke nødvendigt.
Følgende billeder viser loggenes layout
Ved hjælp af LogExpert-værktøjet kan man debugge logfiler oprettet af selen webdriver som i dette værktøj en gang kan
- søg efter enhver tekst og regulært udtryk,
- oprette bogmærke og kommentere dem og kan også navigere mellem bogmærker, hvilket ikke er muligt i noget andet værktøj,
- Filtrer logfilerne og søg efter tekstområder og kan også anvende et andet filter på de tidligere filtrerede logfiler,
- Fremhæv en anden linje baseret på nogle bestemte ord.
Dette værktøj hjælper også med at opdele dataene i forskellige kolonner.