Come utilizzare Log4j in Selenium?

โšก Riepilogo intelligente

Accedi4j Selenium รจ veloce e flessibile Java Framework di logging che registra i dettagli del flusso degli script di automazione. Supporta diversi livelli di log, appender e layout, e si integra perfettamente con LogExpert per l'analisi dei file di log generati.

  • ๐Ÿ”˜ Componenti: Log4j รจ costruito attorno a Logger, Appender e Layout che insieme catturano, instradano e formattano gli eventi di log per Selenium progetti di automazione.
  • โ˜‘๏ธ Livelli di registro: Sette livelli (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF) controllano la quantitร  di dettagli registrati durante l'esecuzione e il debug dello script.
  • โœ… Appendici: ConsoleAppender, FileAppender e RollingFileAppender decidono se le voci di registro vengono inviate alla console, a un file statico o a una serie di file a rotazione.
  • ๐Ÿงช Configurazione: Il file log4j.properties definisce i logger di root e dell'applicazione, i percorsi dei file, la dimensione massima dei file, l'indice di backup e le regole di formattazione PatternLayout.
  • ๏ธ Visualizzatore LogExpert: Lo strumento gratuito LogExpert tails Selenium e file di registro manuali in tempo reale, con filtri, segnalibri, evidenziazioni e visualizzazione a schede multiple.

Come utilizzare Log4j in Selenium

In cosa consiste Log4j Selenium?

Log4j รจ un framework di logging (API) veloce, flessibile e affidabile scritto in Java e sviluppato all'inizio del 1996. รˆ distribuito sotto il marchio Apache Licenza software. Log4j รจ stato portato su C, C++, C#, Perl, Python, Ruby e linguaggi Eiffel. รˆ uno strumento utilizzato per progetti di piccole e grandi dimensioni Selenium progetti di automazione.

Perchรฉ utilizzare Log4j?

Log4j offre diversi vantaggi pratici per Selenium progetti:

  • รˆ open source.
  • Con Log4j รจ possibile memorizzare i dettagli del flusso di Selenium automazione in un file o in un database.
  • Log4j รจ adatto sia a progetti di grandi dimensioni che a progetti di piccole dimensioni.
  • In Log4j, le istruzioni di log sostituiscono le istruzioni System.out.println nel codice per conoscere lo stato di un progetto durante la sua esecuzione.

Componenti Log4j

Componenti Log4j

Logger

Il logger รจ responsabile della registrazione delle informazioni. Per implementare i logger in un progetto, รจ necessario eseguire i seguenti passaggi.

Crea un'istanza della classe Logger

La classe Logger รจ una Java-utility basata su che ha tutti i metodi generici giร  implementati per utilizzare Log4j.

Definire il livello Log4j

Esistono principalmente sette tipi di livelli logaritmici:

  1. TUTTI โ€“ Questo livello di registrazione registra tutto (attiva tutti i log).
  2. DEBUG โ€“ visualizza informazioni di debug ed รจ utile nella fase di sviluppo.
  3. INFO โ€“ stampa messaggi informativi che evidenziano lo stato di avanzamento dell'applicazione.
  4. AVVISO โ€“ visualizza informazioni relative a comportamenti di sistema errati o imprevisti.
  5. ERRORE โ€“ visualizza messaggi di errore che potrebbero consentire al sistema di continuare.
  6. FATALE โ€“ visualizza informazioni critiche di sistema che causano l'arresto anomalo dell'applicazione.
  7. OFF โ€“ Nessuna registrazione.

Appendatori

Un Appender viene utilizzato per recapitare gli eventi di log alla loro destinazione. Decide cosa accadrร  alle informazioni di log. In parole semplici, scrive i log in un file. Di seguito sono riportati alcuni tipi di Appender:

  1. ConsoleAppender scrive i log sull'output standard.
  2. FileAppender stampa i log in un file specifico.
  3. RollingFileAppender scrive su un file con una dimensione massima.

Nota: Nel file log4j.properties, รจ possibile richiamare un appender con qualsiasi nome. Esistono anche altri appender, ma qui ci concentreremo su questi pochi.

layout

Il layout รจ responsabile della formattazione delle informazioni di log in diversi stili.

La classe Logger fornisce diversi metodi per gestire le attivitร  di logging. Offre due metodi statici per ottenere un oggetto Logger.

public static Logger getRootLogger()
public static Logger getLogger(String name)

Come si configura Log4j?

Per configurare Log4j, รจ necessario decidere quale appender implementare. I parametri dell'appender vengono impostati di conseguenza.

  • Utilizzare il livello DEBUG e RollingFileAppender.
  • Vengono create due configurazioni o registri:
    • Innanzitutto: un logger radice, che scrive tutti i log generati dal sistema in un file chiamato Selenium.logs.
    • In secondo luogo: un sistema di registrazione delle applicazioni, che scrive le informazioni generate dai comandi manuali nel codice nel file denominato Manual.logs.
  • Il layout utilizzato รจ PatternLayout.

#Registratore di root

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

#Registri dell'applicazione

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

Nell'esempio precedente, Log4j รจ configurato per registrare i log in due file diversi denominati Selenium.log e Manual.log.

  • file e dest1 sono i due identificatori.
  • Il termine "file" viene utilizzato per specificare il nome del file in cui vengono salvati i log.
  • Il parametro "maxFileSize" viene utilizzato per configurare la dimensione massima del file di log. Quando il file raggiunge questa dimensione, viene creato un nuovo file con lo stesso nome e al vecchio nome viene aggiunto un suffisso di indice.
  • Il parametro "maxBackupIndex" viene utilizzato per configurare il numero massimo di file di cui eseguire il backup.
  • โ€œlayoutโ€ viene utilizzato per impostare il formato del file di registro.
  • Il parametro "Append" viene utilizzato per impostare la funzione di aggiunta. Se impostato su false, viene creato un nuovo file ogni volta anzichรฉ riutilizzare il file precedente per la registrazione dei dati.

Come si utilizza Log4j all'interno di uno script?

Nel codice, "log" viene utilizzato come variabile di riferimento che punta al metodo getLogger della classe Logger.

Logger log = Logger.getLogger("devpinoyLogger");

Utilizzare la variabile di riferimento "log" e il metodo debug per registrare le informazioni necessarie.

log.debug("--information--");

Cos'รจ uno strumento LogExpert?

LogExpert รจ uno strumento con le seguenti caratteristiche:

  1. LogExpert รจ un Windows Strumento sviluppato per analizzare i log.
  2. Si tratta di un visualizzatore di log gratuito e open source.
  3. Si tratta di uno strumento di analisi dei log con molteplici funzionalitร , tra cui ricerca, filtraggio, aggiunta di segnalibri ed evidenziazione dei log.
  4. I file di registro vengono aggiornati automaticamente quando vengono aperti con questo strumento.
  5. รˆ possibile aprire piรน file di registro in schede diverse.
  6. รˆ possibile aggiungere commenti ai segnalibri e utilizzare una scorciatoia da tastiera per navigare tra i diversi segnalibri. รˆ disponibile un elenco completo dei segnalibri per la navigazione.
  7. Nel file di aiuto sono riportate le scorciatoie da tastiera dello strumento, in modo che possano essere consultate all'occorrenza.

Come utilizzare Log4j in Selenium

Passo 1) In Eclipse, crea un nuovo progetto con il nome log4j_demo.

Usa Log4j In Selenium

Passo 2) Fai clic con il pulsante destro del mouse su src -> Percorso di compilazione -> Configura percorso di compilazione.

Usa Log4j In Selenium

Passo 3) Fai clic su Librerie e aggiungi la libreria Log4j. Puรฒ essere scaricata da https://logging.apache.org/log4j/1.2/download.html.

Usa Log4j In Selenium

Passo 4) Crea un nuovo file. Questo file conterrร  tutta la configurazione di Log4j.

  1. Fai clic con il pulsante destro del mouse su src -> Nuovo -> Altro -> Generale -> File.
  2. Assegna al file il nome "log4j.properties".
  3. Clicca su Finisci.

Crea altri due file e assegna loro un nome Selenium.logs e Manual.logs. Questi file contengono tutti i log creati dal sistema e le istruzioni registrate manualmente.

Usa Log4j In Selenium

Passo 5) Nel file log4j.properties, copia l'intera configurazione.

Usa Log4j In Selenium

Passo 6) Crea la classe principale:

  1. Fare clic con il pulsante destro del mouse sul pacchetto predefinito -> Nuovo -> Classe.
  2. Assegna un nome alla classe e fai clic su Fine.

Usa Log4j In Selenium

Passo 7) Copia il seguente codice nella classe principale.

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();
    }
}

Nel codice sopra, lo script visita https://healthunify.com/bmicalculator/ e verifica il calcolatore dell'IMC. Il peso inserito รจ di 87 kg e l'altezza รจ di 5 piedi e 10 pollici. Lo script controlla l'output in unitร  SI, statunitensi e britanniche.

Utilizzando Logger.getLogger("devpinoyLogger"), lo script crea log a livello di sistema. Tramite il metodo log.debug, i dati vengono memorizzati in Manual.log.

Passo 8) Esegui lo script. Apri la posizione di Manuale e Selenium registri per controllare i dati di registrazione.

Come รจ possibile utilizzare lo strumento LogExpert per analizzare i log

  1. Scarica lo strumento da https://github.com/zarunbal/LogExpert. Vai alla cartella di download di LogExpert.

    Lo strumento LogExpert puรฒ essere utilizzato per analizzare i registri

  2. Aprire LogExpert.exe.
  3. Fai clic su File -> Apri e cerca il percorso in cui si trova Manual.log e SeleniumI file .log vengono memorizzati. Seleziona il file.
  4. Seleziona l'opzione "Segui la coda".

    Lo strumento LogExpert puรฒ essere utilizzato per analizzare il registro

    Selezionando "Follow Tail" si abilita la visualizzazione in tempo reale dei log, il che significa che LogExpert aggiorna automaticamente il file di log mentre lo script รจ in esecuzione. Con qualsiasi altro editor, come Blocco note, รจ necessario chiudere e riaprire ripetutamente il file per aggiornare i log. Con LogExpert in modalitร  "Follow Tail", questo non รจ necessario.

    Le immagini seguenti mostrano la disposizione dei registri.

    Lo strumento LogExpert puรฒ essere utilizzato per analizzare il registro

    Lo strumento LogExpert puรฒ essere utilizzato per analizzare il registro

Utilizzando LogExpert, i log creati dal Selenium รˆ possibile eseguire il debug di WebDriver. Con questo strumento รจ possibile:

  • Cerca qualsiasi testo ed espressione regolare.
  • รˆ possibile creare segnalibri, commentarli e navigare tra di essi, cosa non possibile con nessun altro strumento.
  • Filtra i log, cerca intervalli di testo e applica un ulteriore filtro ai log precedentemente filtrati.
  • Evidenzia righe diverse in base a determinate parole.

Questo strumento aiuta anche a suddividere i dati in diverse colonne.

DOMANDE FREQUENTI

Log4j 1.x ha raggiunto la fine del suo ciclo di vita nel 2015 e utilizza un file di proprietร  o XML per la configurazione. Log4j 2.x offre prestazioni migliori, logger asincroni, supporto per Lambda e una maggiore sicurezza dopo le patch di Log4Shell, il che lo rende la scelta consigliata per i nuovi progetti.

Log4j supporta livelli di log configurabili, output persistente su file, backup a rotazione e modelli strutturati. System.out.println scrive solo sulla console e non puรฒ essere filtrato o archiviato. Log4j rende Selenium Risultati dei test piรน facili da valutare, verificare e riprodurre.

Sรฌ. Gli assistenti AI possono analizzare grandi quantitร  di output Log4j, raggruppare errori ripetuti e far emergere modelli di cause principali Selenium corse. Evidenziano localizzatori instabili, passi lenti e impilamento tracsรฌ, trasformando le righe di log grezze in elementi di azione prioritari per gli ingegneri QA.

Le piattaforme di osservabilitร  basate sull'intelligenza artificiale acquisiscono flussi di dati Log4j, rilevano anomalie in tempo reale e prevedono i guasti prima che abbiano un impatto sugli utenti. I modelli di machine learning valutano la gravitร , eliminano i duplicati degli eventi rumorosi e attivano avvisi intelligenti, sostituendo i flussi di lavoro manuali di ricerca con un monitoraggio proattivo.

No. LogExpert รจ un popolare strumento gratuito Windows visualizzatore con tail-follow e filtro, ma le alternative includono BareTail, glogg, Klogg e piattaforme complete come Splunk, Graylogoppure lo stack ELK per l'analisi centralizzata su piรน macchine.

Riassumi questo post con: