Hur man använder Log4j i Selenium?
⚡ Smart sammanfattning
Logga in 4j Selenium är en snabb, flexibel Java loggningsramverk som registrerar flödesdetaljer för automatiseringsskript. Det stöder flera loggnivåer, tillägg och layouter, och fungerar bra med LogExpert för att analysera de genererade loggfilerna.
Vad är Log4j in Selenium?
Log4j är ett snabbt, flexibelt och pålitligt loggningsramverk (API) skrivet i Java och utvecklades i början av 1996. Den distribueras under Apache Programvarulicens. Log4j har porterats till C, C++, C#, Perl, Python, Ruby och Eiffel. Det är ett verktyg som används för både små och stora projekt. Selenium automatiseringsprojekt.
Varför använda Log4j?
Log4j erbjuder flera praktiska fördelar för Selenium projekt:
- Det är öppen källkod.
- Med Log4j är det möjligt att lagra flödesdetaljer för Selenium automatisering i en fil eller databas.
- Log4j fungerar för både stora och små projekt.
- I Log4j ersätter loggsatser System.out.println-satser i koden för att se statusen för ett projekt medan det körs.
Log4j-komponenter
Loggare
Loggaren ansvarar för att logga information. För att implementera loggare i ett projekt måste följande steg utföras.
Skapa en instans för Logger-klassen
Logger-klassen är en Java-baserat verktyg som redan har alla generiska metoder implementerade för att använda Log4j.
Definiera Log4j-nivån
Det finns huvudsakligen sju typer av loggnivåer:
- ALL – Den här loggningsnivån registrerar allt (den aktiverar alla loggar).
- DEBUG – skriver ut felsökningsinformation och är till hjälp i utvecklingsfasen.
- INFO – skriver ut informationsmeddelanden som visar hur programmet förloppet är.
- VARNA – skriver ut information om felaktigt och oväntat systembeteende.
- FEL – skriver ut felmeddelanden som kan göra att systemet kan fortsätta.
- FATAL – skriver ut systemkritisk information som orsakar att programmet kraschar.
- AV – Ingen loggning.
Bilagor
En appender används för att leverera LogEvents till deras destination. Den bestämmer vad som ska hända med logginformationen. Enkelt uttryckt skriver den loggar till en fil. Följande är några typer av appender:
- ConsoleAppender loggar till standardutdata.
- FileAppender skriver ut loggar till en specifik fil.
- RollingFileAppender skriver till en fil med en maximal storlek.
Obs: I log4j.properties kan en appender anropas med vilket namn som helst. Det finns även andra appender, men fokus här ligger på dessa få.
layouter
Layouten ansvarar för att formatera logginformation i olika stilar.
Logger-klassen tillhandahåller olika metoder för att hantera loggningsaktiviteter. Den tillhandahåller två statiska metoder för att hämta ett Logger-objekt.
public static Logger getRootLogger()
public static Logger getLogger(String name)
Hur är Log4j konfigurerad?
För att konfigurera Log4j, bestäm vilken appender som ska implementeras. Appenderns parametrar ställs in därefter.
- Använd DEBUG-nivå och RollingFileAppender.
- Två konfigurationer eller loggar skapas:
- Först: en rootlogger, som skriver alla systemgenererade loggar till en fil med namnet Selenium.loggar.
- För det andra: en applikationsloggare, som skriver information som genereras av manuella kommandon i kod till filen med namnet Manual.logs.
- Layouten som används är 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
#Programloggar
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 exemplet ovan är Log4j konfigurerad för att logga in i två olika filer med namnet Selenium.log och Manual.log.
- fil och dest1 är de två identifierarna.
- ”Fil” används för att ange filnamnet där loggarna sparas.
- ”maxFileSize” används för att konfigurera loggfilens maximala storlek. När filen når denna storlek skapas en ny fil med samma namn, och det gamla filnamnet får ett indexsuffix.
- ”maxBackupIndex” används för att konfigurera det maximala antalet filer som ska säkerhetskopieras.
- "layout" används för att ställa in formatet på loggfilen.
- ”Append” används för att ställa in funktionen append. När den är satt till falskt skapas en ny fil varje gång istället för att återanvända den gamla filen för loggning.
Hur används Log4j i ett skript?
I koden används ”log” som en referensvariabel som refererar till getLogger-metoden i Logger-klassen.
Logger log = Logger.getLogger("devpinoyLogger");
Använd referensvariabeln "log" och debug-metoden för att logga den information som behövs.
log.debug("--information--");
Vad är ett LogExpert-verktyg?
LogExpert är ett verktyg med följande egenskaper:
- LogExpert är en Windows verktyg utvecklat för att följa stockar.
- Det är en gratis och öppen källkodsbaserad loggvisare.
- Det är ett verktyg för logganalys med flera funktioner som sökning, filtrering, bokmärkning och markering av loggar.
- Loggfiler uppdateras automatiskt när de öppnas i det här verktyget.
- Flera loggfiler kan öppnas i olika flikar.
- Kommentarer kan läggas till i bokmärken, och en kortkommando navigerar mellan olika bokmärken. En komplett bokmärkeslista finns tillgänglig för navigering.
- Genvägar till verktyget finns i hjälpfilen så att de kan användas vid behov.
Hur man använder Log4j in Selenium
Steg 1) In Eclipse, skapa ett nytt projekt med namnet log4j_demo.
Steg 2) Högerklicka på src -> Byggsökväg -> Konfigurera byggsökväg.
Steg 3) Klicka på Bibliotek och lägg till Log4j-biblioteket. Det kan laddas ner från https://logging.apache.org/log4j/1.2/download.html.
Steg 4) Skapa en ny fil. Den här filen innehåller all Log4j-konfiguration.
- Högerklicka på src -> Nytt -> Annat -> Allmänt -> Fil.
- Ange filnamnet "log4j.properties".
- Klicka på Slutför.
Skapa ytterligare två filer och namnge dem Selenium.logs och Manual.logs. Dessa filer innehåller alla loggar som skapats av systemet och de manuellt loggade satserna.
Steg 5) I log4j.properties, kopiera hela konfigurationen.
Steg 6) Skapa huvudklassen:
- Högerklicka på standardpaketet -> Nytt -> Klass.
- Ge klassen ett namn och klicka på Slutför.
Steg 7) Kopiera följande kod till huvudklassen.
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 ovan besöker skriptet https://healthunify.com/bmicalculator/ och verifierar BMI-kalkylatorn. Den angivna vikten är 87 kg och längden är 175 cm. Skriptet kontrollerar utdata i SI-, amerikanska och brittiska enheter.
Med hjälp av Logger.getLogger("devpinoyLogger") skapar skriptet loggar på systemnivå. Med hjälp av metoden log.debug lagras data i Manual.log.
Steg 8) Kör skriptet. Öppna platsen för Manual och Selenium loggar för att kontrollera loggdata.
Hur LogExpert-verktyget kan användas för att analysera loggar
- Ladda ner verktyget från https://github.com/zarunbal/LogExpertGå till nedladdningsmappen för LogExpert.
- Öppna LogExpert.exe.
- Klicka på Arkiv -> Öppna och bläddra till sökvägen där Manual.log och Selenium.log-filer lagras. Välj filen.
- Välj alternativet ”Följ svansen”.
Om du väljer Följ svans aktiveras loggföljning, vilket innebär att LogExpert automatiskt uppdaterar loggfilen medan skriptet körs. Med andra redigerare som Anteckningar måste filen stängas och öppnas upprepade gånger för att uppdatera loggarna. Med LogExpert i Följ svans-läge krävs inte detta.
Följande bilder visar loggarnas layout.
Med hjälp av LogExpert skapas loggarna av Selenium WebDriver kan felsökas. I det här verktyget kan man:
- Sök efter valfri text och reguljära uttryck.
- Skapa bokmärken och kommentera dem, och navigera även mellan bokmärken, vilket inte är möjligt i något annat verktyg.
- Filtrera loggarna, sök efter textintervall och använd ett annat filter på de tidigare filtrerade loggarna.
- Markera olika rader baserat på vissa ord.
Detta verktyg hjälper också till att dela upp data i olika kolumner.












