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.

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
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:
- TUTTI โ Questo livello di registrazione registra tutto (attiva tutti i log).
- DEBUG โ visualizza informazioni di debug ed รจ utile nella fase di sviluppo.
- INFO โ stampa messaggi informativi che evidenziano lo stato di avanzamento dell'applicazione.
- AVVISO โ visualizza informazioni relative a comportamenti di sistema errati o imprevisti.
- ERRORE โ visualizza messaggi di errore che potrebbero consentire al sistema di continuare.
- FATALE โ visualizza informazioni critiche di sistema che causano l'arresto anomalo dell'applicazione.
- 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:
- ConsoleAppender scrive i log sull'output standard.
- FileAppender stampa i log in un file specifico.
- 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:
- LogExpert รจ un Windows Strumento sviluppato per analizzare i log.
- Si tratta di un visualizzatore di log gratuito e open source.
- Si tratta di uno strumento di analisi dei log con molteplici funzionalitร , tra cui ricerca, filtraggio, aggiunta di segnalibri ed evidenziazione dei log.
- I file di registro vengono aggiornati automaticamente quando vengono aperti con questo strumento.
- ร possibile aprire piรน file di registro in schede diverse.
- ร 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.
- 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.
Passo 2) Fai clic con il pulsante destro del mouse su src -> Percorso di compilazione -> Configura percorso di compilazione.
Passo 3) Fai clic su Librerie e aggiungi la libreria Log4j. Puรฒ essere scaricata da https://logging.apache.org/log4j/1.2/download.html.
Passo 4) Crea un nuovo file. Questo file conterrร tutta la configurazione di Log4j.
- Fai clic con il pulsante destro del mouse su src -> Nuovo -> Altro -> Generale -> File.
- Assegna al file il nome "log4j.properties".
- 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.
Passo 5) Nel file log4j.properties, copia l'intera configurazione.
Passo 6) Crea la classe principale:
- Fare clic con il pulsante destro del mouse sul pacchetto predefinito -> Nuovo -> Classe.
- Assegna un nome alla classe e fai clic su Fine.
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
- Scarica lo strumento da https://github.com/zarunbal/LogExpert. Vai alla cartella di download di LogExpert.
- Aprire LogExpert.exe.
- Fai clic su File -> Apri e cerca il percorso in cui si trova Manual.log e SeleniumI file .log vengono memorizzati. Seleziona il file.
- Seleziona l'opzione "Segui la coda".
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.
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.











