Slik bruker du Log4j i Selenium?

โšก Smart oppsummering

Logg 4j inn Selenium er en rask, fleksibel Java loggfรธringsrammeverk som registrerer flytdetaljer for automatiseringsskript. Det stรธtter flere loggnivรฅer, tillegg og oppsett, og fungerer godt sammen med LogExpert for รฅ analysere de genererte loggfilene.

  • ๐Ÿ”˜ Komponenter: Log4j er bygget rundt loggere, tilleggsprogrammer og oppsett som sammen fanger opp, ruter og formaterer logghendelser for Selenium automatiseringsprosjekter.
  • โ˜‘๏ธ Loggnivรฅer: Syv nivรฅer (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF) kontrollerer hvor mye detaljer som registreres under skriptkjรธring og feilsรธking.
  • โœ… Tillegg: ConsoleAppender, FileAppender og RollingFileAppender bestemmer om loggoppfรธringer skal til konsollen, en statisk fil eller et rullerende sett med filer.
  • ๐Ÿงช konfigurasjon: En log4j.properties-fil definerer rot- og applikasjonsloggere, filstier, maksimal filstรธrrelse, sikkerhetskopiindeks og PatternLayout-formateringsregler.
  • ๐Ÿ› ๏ธ LogExpert Viewer: Det gratis LogExpert-verktรธyet tar slutt Selenium og manuelle loggfiler i sanntid, med filtrering, bokmerking, utheving og visning av flere faner.

Slik bruker du Log4j i Selenium

Hva er Log4j i Selenium?

Log4j er et raskt, fleksibelt og pรฅlitelig loggfรธringsrammeverk (API) skrevet i Java og utviklet tidlig i 1996. Den distribueres under Apache Programvarelisens. Log4j har blitt portert til C, C++, C#, Perl, Python, Ruby og Eiffel-sprรฅk. Det er et verktรธy som brukes for bรฅde smรฅ og store skalaer Selenium automatiseringsprosjekter.

Hvorfor bruke Log4j?

Log4j tilbyr flere praktiske fordeler for Selenium prosjekter:

  • Det er รฅpen kildekode.
  • Med Log4j er det mulig รฅ lagre flytdetaljene til Selenium automatisering i en fil eller database.
  • Log4j fungerer for bรฅde store og smรฅ prosjekter.
  • I Log4j erstatter loggsetninger System.out.println-setninger i koden for รฅ vite statusen til et prosjekt mens det kjรธrer.

Log4j-komponenter

Log4j-komponenter

Loggere

Loggeren er ansvarlig for logging av informasjon. For รฅ implementere loggere i et prosjekt, mรฅ fรธlgende trinn utfรธres.

Opprett en instans for Logger-klassen

Logger-klassen er en Java-basert verktรธy som allerede har alle de generiske metodene implementert for รฅ bruke Log4j.

Definer Log4j-nivรฅet

Det finnes primรฆrt sju typer loggnivรฅer:

  1. ALLE โ€“ Dette loggingsnivรฅet registrerer alt (det slรฅr pรฅ alle loggene).
  2. DEBUG โ€“ skriver ut feilsรธkingsinformasjon og er nyttig i utviklingsfasen.
  3. INFO โ€“ skriver ut informasjonsmeldinger som fremhever fremdriften til applikasjonen.
  4. ADVARSEL โ€“ skriver ut informasjon om feilaktig og uventet systemoppfรธrsel.
  5. FEIL โ€“ skriver ut feilmeldinger som kan fรธre til at systemet fortsetter.
  6. FATAL โ€“ skriver ut systemkritisk informasjon som fรธrer til at programmet krasjer.
  7. AV โ€“ Ingen logging.

Vedlegg

En tilhenger brukes til รฅ levere LogEvents til destinasjonen. Den bestemmer hva som skal skje med logginformasjonen. Enkelt sagt skriver den logger til en fil. Fรธlgende er noen typer tilhengere:

  1. ConsoleAppender logger til standard utdata.
  2. FileAppender skriver ut logger til en bestemt fil.
  3. RollingFileAppender skriver til en fil med en maksimal stรธrrelse.

OBS: I log4j.properties kan en appender kalles med et hvilket som helst navn. Det finnes ogsรฅ andre appendere, men fokuset her er pรฅ disse fรฅ.

oppsett

Layouten er ansvarlig for รฅ formatere logginformasjon i forskjellige stiler.

Logger-klassen tilbyr ulike metoder for รฅ hรฅndtere loggingsaktiviteter. Den tilbyr to statiske metoder for รฅ hente et Logger-objekt.

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

Hvordan er Log4j konfigurert?

For รฅ konfigurere Log4j, bestem hvilken appender som skal implementeres. Parametrene til appenderen settes deretter.

  • Bruk DEBUG-nivรฅ og RollingFileAppender.
  • To konfigurasjoner eller logger opprettes:
    • Fรธrst: en rotlogger, som skriver alle systemgenererte logger inn i en fil med navnet Selenium.logger.
    • For det andre: en applikasjonslogger, som skriver informasjon generert av manuelle kommandoer i kode inn i filen med navnet Manual.logs.
  • Layouten som brukes er PatternLayout.

#Rootlogger

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

#Applogger

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 eksemplet ovenfor er Log4j konfigurert til รฅ logge inn i to forskjellige filer med navnet Selenium.log og Manual.log.

  • file og dest1 er de to identifikatorene.
  • ยซFilยป brukes til รฅ angi filnavnet der loggene lagres.
  • ยซmaxFileSizeยป brukes til รฅ konfigurere maksimal stรธrrelse pรฅ loggfilen. Nรฅr filen nรฅr denne stรธrrelsen, opprettes en ny fil med samme navn, og det gamle filnavnet fรฅr et indekssuffiks.
  • ยซmaxBackupIndexยป brukes til รฅ konfigurere maksimalt antall filer som skal sikkerhetskopieres.
  • "layout" brukes til รฅ angi formatet pรฅ loggfilen.
  • ยซAppendยป brukes til รฅ angi append-funksjonen. Nรฅr den er satt til false, opprettes en ny fil hver gang i stedet for รฅ bruke den gamle filen pรฅ nytt til logging.

Hvordan brukes Log4j i et skript?

I koden brukes ยซlogยป som en referansevariabel som refererer til getLogger-metoden i Logger-klassen.

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

Bruk referansevariabelen ยซlogยป og feilsรธkingsmetoden til รฅ logge informasjonen som trengs.

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

Hva er et LogExpert-verktรธy?

LogExpert er et verktรธy med fรธlgende egenskaper:

  1. LogExpert er en Windows verktรธy utviklet for รฅ fรธlge logger.
  2. Det er en gratis og รฅpen kildekode-loggviser.
  3. Det er et logganalyseverktรธy med flere funksjoner som sรธking, filtrering, bokmerking og utheving av logger.
  4. Loggfiler oppdateres automatisk nรฅr de รฅpnes i dette verktรธyet.
  5. Flere loggfiler kan รฅpnes i forskjellige faner.
  6. Kommentarer kan legges til bokmerker, og en snarveistast navigerer mellom forskjellige bokmerker. En komplett bokmerkeliste er tilgjengelig for navigering.
  7. Snarveier til verktรธyet finnes i hjelpefilen, slik at de kan brukes etter behov.

Slik bruker du Log4j inn Selenium

Trinn 1) In Eclipse, opprett et nytt prosjekt med navnet log4j_demo.

Bruk Log4j In Selenium

Trinn 2) Hรธyreklikk pรฅ src -> Byggesti -> Konfigurer byggesti.

Bruk Log4j In Selenium

Trinn 3) Klikk pรฅ Biblioteker og legg til Log4j-biblioteket. Det kan lastes ned fra https://logging.apache.org/log4j/1.2/download.html.

Bruk Log4j In Selenium

Trinn 4) Opprett en ny fil. Denne filen inneholder all Log4j-konfigurasjonen.

  1. Hรธyreklikk pรฅ src -> Ny -> Annet -> Generelt -> Fil.
  2. Gi filnavnet ยซlog4j.propertiesยป.
  3. Klikk pรฅ Fullfรธr.

Opprett to filer til og navngi dem Selenium.logs og Manual.logs. Disse filene inneholder alle loggene som er opprettet av systemet og de manuelt loggede setningene.

Bruk Log4j In Selenium

Trinn 5) I log4j.properties kopierer du hele konfigurasjonen.

Bruk Log4j In Selenium

Trinn 6) Opprett hovedklassen:

  1. Hรธyreklikk pรฅ standardpakken -> Ny -> Klasse.
  2. Gi klassen et navn og klikk pรฅ Fullfรธr.

Bruk Log4j In Selenium

Trinn 7) Kopier fรธlgende kode inn 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 koden ovenfor besรธker skriptet https://healthunify.com/bmicalculator/ og verifiserer BMI-kalkulatoren. Vekten som er angitt er 87 kg og hรธyden er 175 cm. Skriptet sjekker utdata i SI-, amerikanske og britiske enheter.

Ved hjelp av Logger.getLogger(โ€œdevpinoyLoggerโ€) oppretter skriptet logger pรฅ systemnivรฅ. Ved hjelp av log.debug-metoden lagres data i Manual.log.

Trinn 8) Kjรธr skriptet. ร…pne plasseringen av Manual og Selenium logger for รฅ sjekke loggdataene.

Hvordan LogExpert-verktรธyet kan brukes til รฅ analysere logger

  1. Last ned verktรธyet fra https://github.com/zarunbal/LogExpertGรฅ til nedlastingsmappen for LogExpert.

    LogExpert-verktรธyet kan brukes til รฅ analysere logger

  2. ร…pne LogExpert.exe.
  3. Klikk pรฅ Fil -> ร…pne og bla til banen der Manual.log og Selenium.log-filer er lagret. Velg filen.
  4. Velg alternativet ยซFรธlg halenยป.

    LogExpert-verktรธyet kan brukes til รฅ analysere loggen

    Hvis du velger Fรธlg hale, aktiveres halefรธring av logger, som betyr at LogExpert automatisk oppdaterer loggfilen mens skriptet kjรธres. Med andre redigeringsprogrammer som Notisblokk, mรฅ filen lukkes og รฅpnes gjentatte ganger for รฅ oppdatere loggene. Med LogExpert i Fรธlg hale-modus er ikke dette nรธdvendig.

    De fรธlgende bildene viser utformingen av stokkene.

    LogExpert-verktรธyet kan brukes til รฅ analysere loggen

    LogExpert-verktรธyet kan brukes til รฅ analysere loggen

Ved hjelp av LogExpert, loggene som er opprettet av Selenium WebDriver kan feilsรธkes. I dette verktรธyet kan man:

  • Sรธk etter hvilken som helst tekst og regulรฆrt uttrykk.
  • Opprett bokmerker og kommenter dem, og naviger ogsรฅ mellom bokmerker, noe som ikke er mulig i noe annet verktรธy.
  • Filtrer loggene, sรธk etter tekstomrรฅder, og bruk et annet filter pรฅ de tidligere filtrerte loggene.
  • Marker forskjellige linjer basert pรฅ bestemte ord.

Dette verktรธyet hjelper ogsรฅ med รฅ partisjonere dataene i forskjellige kolonner.

Spรธrsmรฅl og svar

Log4j 1.x nรฅdde slutten av sin levetid i 2015 og bruker en egenskaps- eller XML-fil for konfigurasjon. Log4j 2.x tilbyr bedre ytelse, asynkrone loggere, lambda-stรธtte og forbedret sikkerhet etter Log4Shell-oppdateringene, noe som gjรธr den til det anbefalte valget for nye prosjekter.

Log4j stรธtter konfigurerbare loggnivรฅer, vedvarende filutdata, rullerende sikkerhetskopier og strukturerte mรธnstre. System.out.println skriver kun til konsollen og kan ikke filtreres eller arkiveres. Log4j lager Selenium testresultater enklere รฅ prioritere, revidere og reprodusere.

Ja. AI-assistenter kan analysere store Log4j-utdata, gruppere gjentatte feil og avdekke rotรฅrsaksmรธnstre pรฅ tvers av Selenium lรธp. De fremhever ustabile posisjoneringspunkter, langsomme skritt og stabling traces, og gjรธr rรฅ logglinjer om til prioriterte handlingspunkter for QA-ingeniรธrer.

AI-drevne observasjonsplattformer tar inn Log4j-strรธmmer, oppdager avvik i sanntid og forutsier feil fรธr de pรฅvirker brukerne. Maskinlรฆringsmodeller vurderer alvorlighetsgrad, dedupliserer stรธyende hendelser og utlรธser smarte varsler, og erstatter manuelle grep-arbeidsflyter med proaktiv overvรฅking.

Nei. LogExpert er et populรฆrt gratisprogram Windows visningsprogram med halefรธlging og filtrering, men alternativer inkluderer BareTail, glogg, Klogg og fullverdige plattformer som Splunk, Graylog, eller ELK-stakken for sentralisert analyse pรฅ tvers av mange maskiner.

Oppsummer dette innlegget med: