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
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
- Alle โ Dette loggingsnivรฅet vil logge alt (det slรฅr alle loggene pรฅ)
- DEBUG โ skriv ut feilsรธkingsinformasjonen og er nyttig i utviklingsstadiet
- INFO โ skriv ut informasjonsmelding som fremhever fremdriften til applikasjonen
- ADVARSEL โ skriv ut informasjon om feil og uventet systematferd.
- FEIL โ skriv ut feilmelding som kan tillate systemet รฅ fortsette
- FATAL โ skriv ut systemkritisk informasjon som fรฅr programmet til รฅ krasje
- 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
- ConsoleAppender logger til standard utgang
- Filvedlegg skriver ut logger til en fil
- 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
#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?
- LogExpert-verktรธyet er et verktรธy for Windows utviklet for รฅ fรธlge tรธmmerstokkene
- Det er gratis og รฅpen kildekode-loggvisning.
- Det er et logganalyseverktรธy med flere funksjoner som sรธk, filtrering, bokmerke og utheving av loggene
- I disse verktรธyloggene blir filer automatisk oppdatert nรฅr de รฅpnes
- I dette verktรธyet kan vi รฅpne flere loggfiler i forskjellige faner
- 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
- 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
Trinn 2) Hรธyreklikk pรฅ src -> Bygg bane -> Konfigurer byggebane
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
Trinn 4) Opprett en ny fil. Denne filen vil inkludere all log4j-konfigurasjonen
- Hรธyreklikk pรฅ src -> Ny -> Annet -> Generelt -> Fil
- Gi filnavnet "log4j.properties"
- 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
Trinn 5) I log4j.properties kopierer du hele konfigurasjonen.
Trinn 6) Lag hovedklasse:
- Hรธyreklikk pรฅ standardpakke -> Ny -> Klasse
- Gi klassen navn og klikk pรฅ fullfรธr
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
- Last ned verktรธyet fra https://github.com/zarunbal/LogExpert . Gรฅ til LogExpert nedlastingsmappe
- ร pne LogExpert.exe
- Klikk pรฅ Fil -> ร pne og Bla til banen der Manual.log og Selenium.log-filer lagres. Velg filen
- Velg alternativet "Fรธlg halen".
ร 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
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.











