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.

  • 🔘 Komponenter: Log4j är byggt kring loggare, tilläggare och layouter som tillsammans fångar, dirigerar och formaterar logghändelser för Selenium automatiseringsprojekt.
  • ☑️ Loggnivåer: Sju nivåer (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF) styr hur mycket detaljer som registreras under skriptkörning och felsökning.
  • Tillägg: ConsoleAppender, FileAppender och RollingFileAppender avgör om loggposter går till konsolen, en statisk fil eller en rullande uppsättning filer.
  • 🧪 konfiguration: En log4j.properties-fil definierar rot- och programloggare, filsökvägar, maximal filstorlek, säkerhetskopieindex och formateringsregler för PatternLayout.
  • 🛠️ LogExpert-visare: Det kostnadsfria LogExpert-verktyget Selenium och manuella loggfiler i realtid, med filtrering, bokmärkning, markering och visning av flera flikar.

Hur man använder Log4j i Selenium

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

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:

  1. ALL – Den här loggningsnivån registrerar allt (den aktiverar alla loggar).
  2. DEBUG – skriver ut felsökningsinformation och är till hjälp i utvecklingsfasen.
  3. INFO – skriver ut informationsmeddelanden som visar hur programmet förloppet är.
  4. VARNA – skriver ut information om felaktigt och oväntat systembeteende.
  5. FEL – skriver ut felmeddelanden som kan göra att systemet kan fortsätta.
  6. FATAL – skriver ut systemkritisk information som orsakar att programmet kraschar.
  7. 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:

  1. ConsoleAppender loggar till standardutdata.
  2. FileAppender skriver ut loggar till en specifik fil.
  3. 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:

  1. LogExpert är en Windows verktyg utvecklat för att följa stockar.
  2. Det är en gratis och öppen källkodsbaserad loggvisare.
  3. Det är ett verktyg för logganalys med flera funktioner som sökning, filtrering, bokmärkning och markering av loggar.
  4. Loggfiler uppdateras automatiskt när de öppnas i det här verktyget.
  5. Flera loggfiler kan öppnas i olika flikar.
  6. 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.
  7. 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.

Använd Log4j In Selenium

Steg 2) Högerklicka på src -> Byggsökväg -> Konfigurera byggsökväg.

Använd Log4j In Selenium

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.

Använd Log4j In Selenium

Steg 4) Skapa en ny fil. Den här filen innehåller all Log4j-konfiguration.

  1. Högerklicka på src -> Nytt -> Annat -> Allmänt -> Fil.
  2. Ange filnamnet "log4j.properties".
  3. 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.

Använd Log4j In Selenium

Steg 5) I log4j.properties, kopiera hela konfigurationen.

Använd Log4j In Selenium

Steg 6) Skapa huvudklassen:

  1. Högerklicka på standardpaketet -> Nytt -> Klass.
  2. Ge klassen ett namn och klicka på Slutför.

Använd Log4j In Selenium

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

  1. Ladda ner verktyget från https://github.com/zarunbal/LogExpertGå till nedladdningsmappen för LogExpert.

    LogExpert-verktyget kan användas för att analysera loggar

  2. Öppna LogExpert.exe.
  3. Klicka på Arkiv -> Öppna och bläddra till sökvägen där Manual.log och Selenium.log-filer lagras. Välj filen.
  4. Välj alternativet ”Följ svansen”.

    LogExpert Tool kan användas för att analysera logg

    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.

    LogExpert Tool kan användas för att analysera logg

    LogExpert Tool kan användas för att analysera logg

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.

Vanliga frågor

Log4j 1.x nådde slutet av sin livscykel 2015 och använder en egenskaps- eller XML-fil för konfiguration. Log4j 2.x erbjuder bättre prestanda, asynkrona loggrar, lambda-stöd och förbättrad säkerhet efter Log4Shell-patcharna, vilket gör den till det rekommenderade valet för nya projekt.

Log4j stöder konfigurerbara loggnivåer, permanent filutdata, rullande säkerhetskopior och strukturerade mönster. System.out.println skriver endast till konsolen och kan inte filtreras eller arkiveras. Log4j skapar Selenium testresultaten är enklare att prioritera, granska och reproducera.

Ja. AI-assistenter kan analysera stora Log4j-utdata, klustra upprepade fel och identifiera rotorsaksmönster överallt. Selenium löpningar. De markerar ojämna positioner, långsamma steg och stapel traces, och omvandlar råa loggrader till prioriterade åtgärdspunkter för QA-ingenjörer.

AI-drivna observationsplattformar tar in Log4j-strömmar, upptäcker avvikelser i realtid och förutspår fel innan de påverkar användarna. Maskininlärningsmodeller poängsätter allvarlighetsgrad, deduplicerar brusiga händelser och utlöser smarta varningar, vilket ersätter manuella grep-arbetsflöden med proaktiv övervakning.

Nej. LogExpert är ett populärt gratisprogram Windows tittare med tail-follow och filtrering, men alternativ inkluderar BareTail, glogg, Klogg och kompletta plattformar som Splunk, Graylog, eller ELK-stacken för centraliserad analys över många maskiner.

Sammanfatta detta inlägg med: