Logga in 4j Selenium: Hur man laddar ner och använder Log4j Properties File
Vad är Log4j in Selenium?
Log4j är ett snabbt, flexibelt och pålitligt loggningsramverk (APIS) skrivet i Java utvecklades i början av 1996. Den distribueras under Apache Programvarulicens. Log4J har porterats till C, C++, C#, Perl, Python, Ruby och Eiffelspråk. Det är ett verktyg som används för liten till stor skala Selenium Automationsprojekt.
Varför använda Log4j?
- Det är en öppen källkod
- Med Log4j är det möjligt att lagra flödesdetaljerna för vår Selenium Automatisering i en fil eller databaser
- Log4j används för stora såväl som små projekt
- I Log4j använder vi loggsatser snarare än SOPL-satser i koden för att veta statusen för ett projekt medan det körs
Log4j-komponenter
Loggare
Den 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 loggerklass
Logger klass är en Java-baserat verktyg som har alla generiska metoder redan implementerade för att använda log4j
Definiera Log4j-nivån
I första hand finns det fem typer av loggnivåer
- Alla – Den här loggningsnivån kommer att logga allt (den aktiverar alla loggar)
- DEBUG – skriv ut felsökningsinformationen och är till hjälp i utvecklingsstadiet
- INFO – skriv ut informationsmeddelande som belyser applikationens framsteg
- VARNING – skriv ut information om felaktigt och oväntat systembeteende.
- ERROR – skriv ut felmeddelande som kan tillåta systemet att fortsätta
- FATAL – skriv ut systemkritisk information som får programmet att krascha
- AV – Ingen loggning
Bilagor
Den används för att leverera LogEvents till deras destination. Den avgör vad som ska hända med logginformation. Med enkla ord används den för att skriva loggarna i filen. Följande är några typer av bilagor
- ConsoleAppender loggar till standardutdata
- Filtillägg skriver ut loggar till någon fil
- Rullar filtillägg till en fil med maximal storlek
Obs: I log4j-egenskaper kan vi anropa appender med vilket namn som helst. Det finns också andra bilagor men vi kommer att begränsa oss till dessa få.
layouter
Den 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 erhålla ett Logger-objekt.
Public static Logger getRootLogger() Public static Logger getLogger(String name)
Hur log4j är konfigurerad?
För att konfigurera log4j måste vi bestämma vilken tillägg som ska implementeras. Följaktligen kommer parametrar för appender att ställas in.
- Vi kommer att använda DEBUG-nivå och RollingFileAppender
- Vi kommer att göra två konfigurationer eller loggar,
- Först: rootlogger, som kommer att skriva alla systemgenererade loggar i filnamnet, dvs Selenium.loggar
- För det andra: Kommer att skriva informationen som genereras av manuella kommandon i kod i filnamnet 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
#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 har vi konfigurerat log4j att logga in två olika filer med namnet som Selenium.log och Manual.log.
- fil och dest1 är de två identifierarna.
- "File" används för att ange filnamn där loggar kommer att sparas
- "maxFileSize" används för att konfigurera den maximala storleken på loggfilen. När filen når denna storlek skapas en ny fil med samma namn och det gamla filnamnet kommer att läggas till som ett index till den.
- "maxBackupIndex" används för att konfigurera maximalt antal filer som ska säkerhetskopieras.
- "layout" används för att ställa in formatet på loggfilen.
- "Lägg till" används för att ställa in tilläggsfunktionen. Om det är inställt på falskt kommer en ny fil att skapas istället för gammal fil att användas för loggning
Hur log4j används i skript?
I kod har vi använt "log" som en referensvariabel som refererar till getLogger-metoden för Logger Class
Logger log = Logger.getLogger("devpinoyLogger");
Använd "log"-referensvariabel och felsökningsmetod för att logga den information vi vill ha.
log.debug("--information--");
Vad är ett LogExpert-verktyg?
- LogExpert verktyg är ett verktyg för Windows utvecklad för att svansa stockarna
- Det är gratis och öppen källkod loggvisare.
- Det är ett logganalysverktyg med flera funktioner som sökning, filtrering, bokmärken och markering av loggarna
- I dessa verktygsloggar uppdateras filer automatiskt när de öppnas
- I det här verktyget kan vi öppna flera loggfiler på olika flikar
- Vi kan också lägga kommentarer på bokmärken, och det finns en kortkommando för att navigera mellan olika bokmärken. Vi kan också se hela bokmärkeslistan och navigera därifrån
- Genvägar till verktyget finns i hjälpfilen så att de kan hänvisas till verktyget.
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 -> Build Path -> Configure Build Path
Steg 3) Klicka på Bibliotek och Lägg till Log4J Library . Du kan ladda ner den från https://logging.apache.org/log4j/1.2/download.html
Steg 4) Skapa en ny fil. Den här filen kommer att inkludera all log4j-konfiguration
- Högerklicka på src -> New -> Other -> General -> File
- Ange filnamnet som "log4j.properties"
- Klicka på Slutför
Skapa ytterligare två filer och ge dem namn som t.ex Selenium.loggar och Manuella.loggar. Dessa filer kommer att innehålla alla loggar som skapats av systemet och manuellt loggade uttalanden
Steg 5) Kopiera hela konfigurationen i log4j.properties.
Steg 6) Skapa huvudklass:
- Högerklicka på standardpaket -> Nytt -> Klass
- Ge klassens 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 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 ovanstående kod besöker vi https://healthunify.com/bmicalculator/ och verifiera BMI-kalkylatorn. Vikten som anges är 87 kg och höjden är 5 fot 10 tum. Skriptet kontrollerar utdata i enheter i SE, USA och Storbritannien.
Med Logger.getLogger(“devpinoyLogger”) skapar vi loggar på systemnivå
Med log.debug-metoden lagrar vi data i Manual.log
Steg 8) Kör skriptet. Öppna platsen för Manual och Selenium loggar för att kontrollera loggningsdata.
Hur LogExpert-verktyget kan användas för att analysera loggar
- Ladda ner verktyget från https://github.com/zarunbal/LogExpert . Gå till LogExperts nedladdningsmapp
- Ö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 svans".
Genom att välja alternativet follow tail möjliggörs tailing av loggar vilket innebär att LogExpert automatiskt uppdaterar loggfilen när skriptet är i exekveringsfasen. Om vi använder någon annan redigerare som anteckningar måste vi stänga och öppna filen igen och igen för att uppdatera loggarna. Men med ExpertTool i Follow Tail Mode är detta inte nödvändigt.
Följande bilder visar loggarnas layout
Med hjälp av LogExpert-verktyget kan man felsöka loggar som skapats av selenwebbdrivrutinen som i detta verktyg en gång kan
- sök efter valfri text och reguljärt uttryck,
- skapa bokmärken och kommentera dem och kan även navigera mellan bokmärken vilket inte är möjligt i något annat verktyg,
- Filtrera loggarna och sök efter textintervall och kan även tillämpa ett annat filter på de tidigare filtrerade loggarna,
- Markera en annan rad baserat på vissa ord.
Detta verktyg hjälper också till att dela upp data i olika kolumner.











