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.

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
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:
- ALLE โ Dette loggingsnivรฅet registrerer alt (det slรฅr pรฅ alle loggene).
- DEBUG โ skriver ut feilsรธkingsinformasjon og er nyttig i utviklingsfasen.
- INFO โ skriver ut informasjonsmeldinger som fremhever fremdriften til applikasjonen.
- ADVARSEL โ skriver ut informasjon om feilaktig og uventet systemoppfรธrsel.
- FEIL โ skriver ut feilmeldinger som kan fรธre til at systemet fortsetter.
- FATAL โ skriver ut systemkritisk informasjon som fรธrer til at programmet krasjer.
- 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:
- ConsoleAppender logger til standard utdata.
- FileAppender skriver ut logger til en bestemt fil.
- 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:
- LogExpert er en Windows verktรธy utviklet for รฅ fรธlge logger.
- Det er en gratis og รฅpen kildekode-loggviser.
- Det er et logganalyseverktรธy med flere funksjoner som sรธking, filtrering, bokmerking og utheving av logger.
- Loggfiler oppdateres automatisk nรฅr de รฅpnes i dette verktรธyet.
- Flere loggfiler kan รฅpnes i forskjellige faner.
- Kommentarer kan legges til bokmerker, og en snarveistast navigerer mellom forskjellige bokmerker. En komplett bokmerkeliste er tilgjengelig for navigering.
- 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.
Trinn 2) Hรธyreklikk pรฅ src -> Byggesti -> Konfigurer byggesti.
Trinn 3) Klikk pรฅ Biblioteker og legg til Log4j-biblioteket. Det kan lastes ned fra https://logging.apache.org/log4j/1.2/download.html.
Trinn 4) Opprett en ny fil. Denne filen inneholder all Log4j-konfigurasjonen.
- Hรธyreklikk pรฅ src -> Ny -> Annet -> Generelt -> Fil.
- Gi filnavnet ยซlog4j.propertiesยป.
- 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.
Trinn 5) I log4j.properties kopierer du hele konfigurasjonen.
Trinn 6) Opprett hovedklassen:
- Hรธyreklikk pรฅ standardpakken -> Ny -> Klasse.
- Gi klassen et 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 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
- Last ned verktรธyet fra https://github.com/zarunbal/LogExpertGรฅ til nedlastingsmappen for LogExpert.
- ร pne LogExpert.exe.
- Klikk pรฅ Fil -> ร pne og bla til banen der Manual.log og Selenium.log-filer er lagret. Velg filen.
- Velg alternativet ยซFรธlg halenยป.
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.
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.











