Sådan bruger du Log4j i Selenium?

⚡ Smart opsummering

Log4j ind Selenium er en hurtig, fleksibel Java Et logføringsframework, der registrerer flowdetaljer i automatiseringsscripts. Det understøtter flere logniveauer, tilføjelser og layouts og fungerer godt sammen med LogExpert til at analysere de genererede logfiler.

  • 🔘 Komponenter: Log4j er bygget op omkring loggere, tilføjelser og layouts, der tilsammen registrerer, ruter og formaterer loghændelser for Selenium automatiseringsprojekter.
  • ☑️ Logniveauer: Syv niveauer (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF) styrer, hvor mange detaljer der registreres under scriptudførelse og fejlfinding.
  • Tillæg: ConsoleAppender, FileAppender og RollingFileAppender bestemmer, om logposter skal til konsollen, en statisk fil eller et rullende sæt af filer.
  • 🧪 Konfiguration: En log4j.properties-fil definerer rod- og applikationsloggere, filstier, maksimal filstørrelse, backupindeks og PatternLayout-formateringsregler.
  • 🛠️ LogExpert Viewer: Det gratis LogExpert-værktøj Selenium og manuelle logfiler i realtid med filtrering, bogmærkning, fremhævning og visning på flere faner.

Sådan bruger du Log4j i Selenium

Hvad er Log4j i Selenium?

Log4j er et hurtigt, fleksibelt og pålideligt logging framework (API) skrevet i Java og udviklet i begyndelsen af ​​1996. Den distribueres under Apache Softwarelicens. Log4j er blevet porteret til C, C++, C#, Perl, Python, Ruby og Eiffel-sprogene. Det er et værktøj, der bruges til både små og store projekter Selenium automatiseringsprojekter.

Hvorfor bruge Log4j?

Log4j tilbyder adskillige praktiske fordele for Selenium projekter:

  • Det er open source.
  • Med Log4j er det muligt at gemme flowdetaljerne for Selenium automatisering i en fil eller database.
  • Log4j fungerer til både store og små projekter.
  • I Log4j erstatter log-sætninger System.out.println-sætninger i koden for at kende status for et projekt, mens det udføres.

Log4j komponenter

Log4j komponenter

Loggere

Loggeren er ansvarlig for logføring af information. For at implementere loggere i et projekt skal følgende trin udføres.

Opret en instans for Logger-klassen

Logger-klassen er en Java-baseret værktøj, der allerede har alle de generiske metoder implementeret til at bruge Log4j.

Definer Log4j-niveauet

Der er primært syv typer logniveauer:

  1. ALLE – Dette logføringsniveau registrerer alt (det aktiverer alle logfiler).
  2. DEBUG – udskriver fejlfindingsoplysninger og er nyttige i udviklingsfasen.
  3. INFO – udskriver informationsmeddelelser, der fremhæver applikationens status.
  4. ADVARSEL – udskriver oplysninger om fejlbehæftet og uventet systemadfærd.
  5. FEJL – udskriver fejlmeddelelser, der kan tillade systemet at fortsætte.
  6. FATAL – udskriver systemkritiske oplysninger, der får applikationen til at gå ned.
  7. FRA – Ingen logføring.

Vedhæng

En Appender bruges til at levere LogEvents til deres destination. Den bestemmer, hvad der skal ske med logoplysningerne. Kort sagt skriver den logfiler til en fil. Følgende er et par typer af Appendere:

  1. ConsoleAppender logger til standardoutput.
  2. FileAppender udskriver logfiler til en bestemt fil.
  3. RollingFileAppender skriver til en fil med en maksimal størrelse.

Bemærk: I log4j.properties kan en appender kaldes med et hvilket som helst navn. Der findes også andre appendere, men fokus her er på disse få.

layouts

Layoutet er ansvarlig for formatering af logoplysninger i forskellige stilarter.

Logger-klassen tilbyder forskellige metoder til at håndtere logging-aktiviteter. Den tilbyder to statiske metoder til at hente et Logger-objekt.

public static Logger getRootLogger()
public static Logger getLogger(String name)

Hvordan er Log4j konfigureret?

For at konfigurere Log4j skal du beslutte, hvilken appender der skal implementeres. Appenderens parametre indstilles i overensstemmelse hermed.

  • Brug DEBUG-niveau og RollingFileAppender.
  • Der oprettes to konfigurationer eller logfiler:
    • Først: en rootlogger, som skriver alle systemgenererede logs ind i en fil med navnet Selenium.logfiler.
    • For det andet: en applikationslogger, som skriver oplysninger genereret af manuelle kommandoer i kode til filen med navnet Manual.logs.
  • Det anvendte layout er PatternLayout.

#Root logger

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

#Applikationslogfiler

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

I ovenstående eksempel er Log4j konfigureret til at logge ind i to forskellige filer med navnet Selenium.log og Manual.log.

  • file og dest1 er de to identifikatorer.
  • "Fil" bruges til at angive det filnavn, hvor logge gemmes.
  • "maxFileSize" bruges til at konfigurere den maksimale størrelse på logfilen. Når filen når denne størrelse, oprettes en ny fil med samme navn, og det gamle filnavn får et indekssuffiks.
  • "maxBackupIndex" bruges til at konfigurere det maksimale antal filer, der skal sikkerhedskopieres.
  • "layout" bruges til at indstille formatet på logfilen.
  • "Append" bruges til at indstille append-funktionen. Når den er indstillet til false, oprettes der en ny fil hver gang i stedet for at genbruge den gamle fil til logføring.

Hvordan bruges Log4j i et script?

I koden bruges "log" som en referencevariabel, der refererer til getLogger-metoden i Logger-klassen.

Logger log = Logger.getLogger("devpinoyLogger");

Brug referencevariablen "log" og debug-metoden til at logge de nødvendige oplysninger.

log.debug("--information--");

Hvad er et LogExpert-værktøj?

LogExpert er et værktøj med følgende egenskaber:

  1. LogExpert er en Windows Værktøj udviklet til at følge logfiler.
  2. Det er en gratis og open source-logfremviser.
  3. Det er et loganalyseværktøj med flere funktioner såsom søgning, filtrering, bogmærkning og fremhævning af logs.
  4. Logfiler opdateres automatisk, når de åbnes i dette værktøj.
  5. Flere logfiler kan åbnes i forskellige faner.
  6. Kommentarer kan tilføjes til bogmærker, og en genvejstast navigerer mellem forskellige bogmærker. En komplet bogmærkeliste er tilgængelig til navigation.
  7. Genveje til værktøjet findes i hjælpefilen, så de kan bruges efter behov.

Sådan bruger du Log4j ind Selenium

Trin 1) In Eclipse, opret et nyt projekt med navnet log4j_demo.

Brug Log4j In Selenium

Trin 2) Højreklik på src -> Byggesti -> Konfigurer byggesti.

Brug Log4j In Selenium

Trin 3) Klik på Biblioteker og tilføj Log4j-biblioteket. Det kan downloades fra https://logging.apache.org/log4j/1.2/download.html.

Brug Log4j In Selenium

Trin 4) Opret en ny fil. Denne fil indeholder al Log4j-konfiguration.

  1. Højreklik på src -> Ny -> Andet -> Generelt -> Fil.
  2. Giv filnavnet “log4j.properties”.
  3. Klik på Udfør.

Opret to filer mere og navngiv dem Selenium.logs og Manual.logs. Disse filer indeholder alle de logfiler, der er oprettet af systemet, og de manuelt loggede sætninger.

Brug Log4j In Selenium

Trin 5) I log4j.properties skal du kopiere hele konfigurationen.

Brug Log4j In Selenium

Trin 6) Opret hovedklassen:

  1. Højreklik på standardpakken -> Ny -> Klasse.
  2. Giv klassen et navn, og klik på Afslut.

Brug Log4j In Selenium

Trin 7) Kopier følgende kode ind i hovedklassen.

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();
    }
}

I ovenstående kode besøger scriptet https://healthunify.com/bmicalculator/ og verificerer BMI-beregneren. Den indtastede vægt er 87 kg, og højden er 175 cm. Scriptet kontrollerer output i SI-, amerikanske og britiske enheder.

Ved hjælp af Logger.getLogger("devpinoyLogger") opretter scriptet logfiler på systemniveau. Ved hjælp af log.debug-metoden gemmes data i Manual.log.

Trin 8) Kør scriptet. Åbn placeringen af ​​Manual og Selenium logfiler for at kontrollere logdataene.

Hvordan LogExpert-værktøjet kan bruges til at analysere logfiler

  1. Download værktøjet fra https://github.com/zarunbal/LogExpertGå til LogExpert-downloadmappen.

    LogExpert Tool kan bruges til at analysere logfiler

  2. Åbn LogExpert.exe.
  3. Klik på Filer -> Åbn, og find stien, hvor Manual.log og Selenium.log-filer er gemt. Vælg filen.
  4. Vælg indstillingen "Følg halen".

    LogExpert Tool kan bruges til at analysere log

    Hvis du vælger Følg hale, aktiveres haleregistrering af logfiler, hvilket betyder, at LogExpert automatisk opdaterer logfilen, mens scriptet kører. Med andre editorer som Notesblok skal filen lukkes og genåbnes gentagne gange for at opdatere logfilerne. Med LogExpert i Følg hale-tilstand er dette ikke påkrævet.

    De følgende billeder viser layoutet af logfilerne.

    LogExpert Tool kan bruges til at analysere log

    LogExpert Tool kan bruges til at analysere log

Ved hjælp af LogExpert, de logfiler, der er oprettet af Selenium WebDriver kan fejlfindes. I dette værktøj kan man:

  • Søg efter tekst og regulære udtryk.
  • Opret bogmærker og kommenter på dem, og naviger også mellem bogmærker, hvilket ikke er muligt i noget andet værktøj.
  • Filtrer loggene, søg efter tekstområder, og anvend et andet filter på de tidligere filtrerede logge.
  • Fremhæv forskellige linjer baseret på bestemte ord.

Dette værktøj hjælper også med at opdele dataene i forskellige kolonner.

Ofte Stillede Spørgsmål

Log4j 1.x nåede slutningen af ​​sin levetid i 2015 og bruger en egenskabs- eller XML-fil til konfiguration. Log4j 2.x tilbyder bedre ydeevne, asynkrone loggere, lambda-understøttelse og forbedret sikkerhed efter Log4Shell-patches, hvilket gør den til det anbefalede valg til nye projekter.

Log4j understøtter konfigurerbare logniveauer, permanent filoutput, rullende sikkerhedskopier og strukturerede mønstre. System.out.println skriver kun til konsollen og kan ikke filtreres eller arkiveres. Log4j laver Selenium testresultater nemmere at triage, revidere og reproducere.

Ja. AI-assistenter kan analysere store Log4j-output, gruppere gentagne fejl og finde rodårsagsmønstre på tværs af Selenium løb. De fremhæver ustabile positioner, langsomme skridt og stak traces, og omdanner rå loglinjer til prioriterede handlingspunkter for QA-ingeniører.

AI-drevne observationsplatforme indtager Log4j-strømme, registrerer anomalier i realtid og forudsiger fejl, før de påvirker brugerne. Maskinlæringsmodeller scorer alvorlighedsgrad, deduplikerer støjende hændelser og udløser smarte alarmer, hvilket erstatter manuelle grep-arbejdsgange med proaktiv overvågning.

Nej. LogExpert er et populært gratis program Windows fremviser med tail-follow og filtrering, men alternativer inkluderer BareTail, glogg, Klogg og komplette platforme som Splunk, Graylogeller ELK-stakken til centraliseret analyse på tværs af mange maskiner.

Opsummer dette indlæg med: