Logg 4j inn Selenium: Hvordan laste ned og bruke Log4j Properties File

Hva er Log4j i Selenium?

Log4j er et raskt, fleksibelt og pรฅlitelig loggingsrammeverk (APIS) skrevet inn Java utviklet tidlig i 1996. Den er distribuert 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 liten til stor skala Selenium Automatiseringsprosjekter.

Hvorfor bruke Log4j?

  • Det er en รฅpen kildekode
  • Med Log4j er det mulig รฅ lagre flytdetaljene til vรฅr Selenium Automatisering i en fil eller databaser
  • Log4j brukes til store sรฅ vel som smรฅ prosjekter
  • I Log4j bruker vi loggsetninger i stedet for SOPL-setninger i koden for รฅ vite statusen til et prosjekt mens det kjรธres

Log4j-komponenter

Log4j-komponenter

Loggere

Den er ansvarlig for logginformasjon. For รฅ implementere loggere i et prosjekt mรฅ fรธlgende trinn utfรธres

Opprett en forekomst for loggerklassen

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

Definer Log4j-nivรฅet

Primรฆrt er det fem typer loggnivรฅer

  1. Alle โ€“ Dette loggingsnivรฅet vil logge alt (det slรฅr alle loggene pรฅ)
  2. DEBUG โ€“ skriv ut feilsรธkingsinformasjonen og er nyttig i utviklingsstadiet
  3. INFO โ€“ skriv ut informasjonsmelding som fremhever fremdriften til applikasjonen
  4. ADVARSEL โ€“ skriv ut informasjon om feil og uventet systematferd.
  5. FEIL โ€“ skriv ut feilmelding som kan tillate systemet รฅ fortsette
  6. FATAL โ€“ skriv ut systemkritisk informasjon som fรฅr programmet til รฅ krasje
  7. AV โ€“ Ingen logging

Vedlegg

Den brukes til รฅ levere LogEvents til deres destinasjon. Den bestemmer hva som skal skje med logginformasjon. I enkle ord brukes den til รฅ skrive loggene i filen. Fรธlgende er noen typer vedlegg

  1. ConsoleAppender logger til standard utgang
  2. Filvedlegg skriver ut logger til en fil
  3. Ruller filtillegg til en fil med maksimal stรธrrelse

OBS: I log4j-egenskaper kan vi kalle appender med hvilket som helst navn. Det er ogsรฅ andre vedlegg, men vi vil begrense oss til disse fรฅ.

oppsett

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

Logger-klassen gir forskjellige metoder for รฅ hรฅndtere loggingsaktiviteter. Den gir to statiske metoder for รฅ skaffe et loggerobjekt.

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

Hvordan er log4j konfigurert?

For รฅ konfigurere log4j mรฅ vi bestemme hvilken appender som skal implementeres. Fรธlgelig vil parametere for vedlegg bli satt.

  • Vi vil bruke DEBUG-nivรฅ og RollingFileAppender
  • Vi vil gjรธre to konfigurasjoner eller logger,
  • Fรธrst: rotlogger, som vil skrive alle systemgenererte logger i filnavnet, dvs Selenium.logger
  • For det andre: Vil skrive informasjonen generert av manuelle kommandoer i kode inn i filnavnet Manual.logs
  • Layout vil vรฆre 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<strong>{1}</strong>:%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 har vi konfigurert log4j til รฅ logge pรฅ to forskjellige filer kalt som Selenium.log og Manual.log.

    • file og dest1 er de to identifikatorene.
    • "Fil" brukes til รฅ gi filnavnet som logger skal lagres i
    • "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 legges til som en indeks til den.
    • "maxBackupIndex" brukes til รฅ konfigurere maksimalt antall filer som skal sikkerhetskopieres.
    • "layout" brukes til รฅ angi formatet pรฅ loggfilen.
    • "Legg til" brukes til รฅ angi tilleggsfunksjon. Hvis den er satt til usann, vil det brukes til logging hver gang en ny fil opprettes i stedet for gammel fil.

    Hvordan brukes log4j i script?

    I kode har vi brukt "log" som en referansevariabel som refererer til getLogger-metoden til Logger Class

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

    Bruk "logg"-referansevariabel og feilsรธkingsmetode for รฅ logge informasjonen vi รธnsker.

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

    Hva er et LogExpert-verktรธy?

    1. LogExpert-verktรธyet er et verktรธy for Windows utviklet for รฅ fรธlge tรธmmerstokkene
    2. Det er gratis og รฅpen kildekode-loggvisning.
    3. Det er et logganalyseverktรธy med flere funksjoner som sรธk, filtrering, bokmerke og utheving av loggene
    4. I disse verktรธyloggene blir filer automatisk oppdatert nรฅr de รฅpnes
    5. I dette verktรธyet kan vi รฅpne flere loggfiler i forskjellige faner
    6. Vi kan ogsรฅ legge inn kommentarer pรฅ bokmerker, og det er hurtigtasten for รฅ navigere mellom ulike bokmerker. Vi kan ogsรฅ se fullstendig bokmerkeliste og navigere derfra
    7. Snarveier til verktรธyet er gitt i hjelpefilen slik at de kan henvises til verktรธyet.

    Slik bruker du Log4j inn Selenium

    Trinn 1) In Eclipse opprette et nytt prosjekt med navnet log4j_demo

    Bruk Log4j In Selenium

    Trinn 2) Hรธyreklikk pรฅ src -> Bygg bane -> Konfigurer byggebane

    Bruk Log4j In Selenium

    Trinn 3) Klikk pรฅ Biblioteker og Legg til Log4J-bibliotek. Du kan laste den ned fra https://logging.apache.org/log4j/1.2/download.html

    Bruk Log4j In Selenium

    Trinn 4) Opprett en ny fil. Denne filen vil inkludere all log4j-konfigurasjonen

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

    Lag to filer til og gi dem navn som f.eks Selenium.logger og manuelle.logger. Disse filene vil inneholde alle loggene opprettet av systemet og manuelt loggede uttalelser

    Bruk Log4j In Selenium

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

    Bruk Log4j In Selenium

    Trinn 6) Lag hovedklasse:

    1. Hรธyreklikk pรฅ standardpakke -> Ny -> Klasse
    2. Gi klassen 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 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();
    	}
    }
    

    I koden ovenfor besรธker vi https://healthunify.com/bmicalculator/ og verifiser BMI-kalkulatoren. Vekten som er lagt inn er 87 kg og hรธyden er 5 fot 10 tommer. Skriptet sjekker utdata i SE, US og UK enheter.

    Ved รฅ bruke Logger.getLogger(โ€œdevpinoyLoggerโ€) lager vi logger pรฅ systemnivรฅ

    Ved รฅ bruke log.debug-metoden lagrer vi data i Manual.log

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

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

    1. Last ned verktรธyet fra https://github.com/zarunbal/LogExpert . Gรฅ til LogExpert nedlastingsmappe

      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 lagres. Velg filen
    4. Velg alternativet "Fรธlg halen".

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

      ร… velge follow tail-alternativet aktiverer tailing av logger, noe som betyr at LogExpert automatisk oppdaterer loggfilen nรฅr skriptet er i utfรธrelsesfasen. Hvis vi bruker en annen editor som notisblokk, mรฅ vi lukke og รฅpne filen igjen og igjen for รฅ oppdatere loggene. Men med ExpertTool i Follow Tail-modus er dette ikke nรธdvendig.

      Fรธlgende bilder viser utformingen av loggene

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

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

    Ved รฅ bruke LogExpert-verktรธyet kan man feilsรธke logger opprettet av selen-webdriveren som i dette verktรธyet en gang kan

    • sรธk etter tekst og regulรฆre uttrykk,
    • lage bokmerker og kommentere dem og kan ogsรฅ navigere mellom bokmerker som ikke er mulig i noe annet verktรธy,
    • Filtrer loggene og sรธk etter tekstomrรฅder og kan ogsรฅ bruke et annet filter pรฅ de tidligere filtrerte loggene,
    • Marker en annen linje basert pรฅ noen bestemte ord.

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

    Oppsummer dette innlegget med: