Hoe gebruik je Log4j in Selenium?
โก Slimme samenvatting
Log4j in Selenium is snel en flexibel Java Een logframework dat de details van de workflow van automatiseringsscripts vastlegt. Het ondersteunt meerdere logniveaus, appenders en lay-outs en werkt goed samen met LogExpert voor het analyseren van de gegenereerde logbestanden.
Wat is Log4j? Selenium?
Log4j is een snel, flexibel en betrouwbaar loggingframework (API) geschreven in Java en ontwikkeld begin 1996. Het wordt gedistribueerd onder de apache Softwarelicentie. Log4j is geporteerd naar C. C++, C#, Perl, Python, Ruby en Eiffel-talen. Het is een tool die gebruikt wordt voor kleine tot grote projecten. Selenium automatiseringsprojecten.
Waarom Log4j gebruiken?
Log4j biedt diverse praktische voordelen voor Selenium projecten:
- Het is open source.
- Met Log4j is het mogelijk om de details van de datastroom op te slaan. Selenium automatisering in een bestand of database.
- Log4j is geschikt voor zowel grote als kleine projecten.
- In Log4j vervangen log-instructies de System.out.println-instructies in de code om de status van een project tijdens de uitvoering te controleren.
Log4j-componenten
Houthakkers
De logger is verantwoordelijk voor het vastleggen van informatie. Om loggers in een project te implementeren, moeten de volgende stappen worden uitgevoerd.
Maak een instantie aan voor de klasse Logger.
De Logger-klasse is een Java-gebaseerde utility die alle generieke methoden al heeft geรฏmplementeerd om Log4j te gebruiken.
Definieer het Log4j-niveau
Er zijn hoofdzakelijk zeven soorten logaritmische niveaus:
- ALL โ Dit logniveau registreert alles (het schakelt alle logboekregistratie in).
- DEBUG โ print foutopsporingsinformatie en is handig tijdens de ontwikkelingsfase.
- INFO โ print informatieve berichten die de voortgang van de aanvraag weergeven.
- WAARSCHUWING โ geeft informatie weer over foutief en onverwacht systeemgedrag.
- FOUT โ geeft foutmeldingen weer die het systeem mogelijk in staat stellen verder te werken.
- FATAL โ geeft kritieke systeeminformatie weer die ervoor zorgt dat de applicatie vastloopt.
- UIT โ Geen logboekregistratie.
appenders
Een Appender wordt gebruikt om LogEvents naar hun bestemming te sturen. Hij bepaalt wat er met de loginformatie gebeurt. Simpel gezegd, hij schrijft logs naar een bestand. Hieronder volgen enkele typen Appenders:
- ConsoleAppender logt naar de standaarduitvoer.
- FileAppender schrijft logbestanden naar een specifiek bestand.
- RollingFileAppender schrijft naar een bestand met een maximale grootte.
Let op: In log4j.properties kan een appender met elke gewenste naam worden aangeroepen. Er zijn ook andere appenders, maar hier ligt de focus op deze paar.
lay-outs
De lay-out is verantwoordelijk voor het formatteren van logboekinformatie in verschillende stijlen.
De klasse Logger biedt verschillende methoden om logactiviteiten af โโte handelen. Er zijn twee statische methoden beschikbaar om een โโLogger-object te verkrijgen.
public static Logger getRootLogger()
public static Logger getLogger(String name)
Hoe is Log4j geconfigureerd?
Om Log4j te configureren, moet je bepalen welke appender je wilt implementeren. De parameters van de appender worden dienovereenkomstig ingesteld.
- Gebruik het DEBUG-niveau en RollingFileAppender.
- Er worden twee configuraties of logbestanden aangemaakt:
- Ten eerste: een root-logger, die alle door het systeem gegenereerde logbestanden naar een bestand schrijft met de naam Selenium.logs.
- Ten tweede: een applicatielogger, die informatie die door handmatige commando's in de code wordt gegenereerd, naar het bestand met de naam Manual.logs schrijft.
- De gebruikte lay-out is 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
#Applicatielogboeken
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
In het bovenstaande voorbeeld is Log4j geconfigureerd om naar twee verschillende bestanden te loggen met de volgende namen: Selenium.log en Handmatig.log.
- file en dest1 zijn de twee identificatiegegevens.
- "Bestand" wordt gebruikt om de bestandsnaam op te geven waarin logbestanden worden opgeslagen.
- Met "maxFileSize" kan de maximale grootte van het logbestand worden ingesteld. Wanneer het bestand deze grootte bereikt, wordt een nieuw bestand met dezelfde naam aangemaakt en krijgt de oude bestandsnaam een โโindexachtervoegsel.
- Met "maxBackupIndex" kunt u het maximale aantal bestanden instellen dat moet worden geback-upt.
- โlayoutโ wordt gebruikt om het formaat van het logbestand in te stellen.
- Met "Append" wordt de toevoegingsfunctie ingesteld. Als deze op false is ingesteld, wordt er elke keer een nieuw bestand aangemaakt in plaats van het oude bestand te hergebruiken voor logboekregistratie.
Hoe wordt Log4j binnen een script gebruikt?
In de code wordt "log" gebruikt als referentievariabele die verwijst naar de getLogger-methode van de Logger-klasse.
Logger log = Logger.getLogger("devpinoyLogger");
Gebruik de referentievariabele "log" en de debug-methode om de benodigde informatie vast te leggen.
log.debug("--information--");
Wat is een LogExpert-tool?
LogExpert is een tool met de volgende kenmerken:
- LogExpert is een Windows Een tool ontwikkeld voor het analyseren van logboeken.
- Het is een gratis en open source logviewer.
- Het is een tool voor loganalyse met meerdere functies, zoals zoeken, filteren, bladwijzers toevoegen en logs markeren.
- Logbestanden worden automatisch bijgewerkt wanneer ze in deze tool worden geopend.
- Meerdere logbestanden kunnen in verschillende tabbladen worden geopend.
- Aan bladwijzers kunnen opmerkingen worden toegevoegd en met een sneltoets kan tussen verschillende bladwijzers worden genavigeerd. Een volledige lijst met bladwijzers is beschikbaar voor navigatie.
- Sneltoetsen voor de tool zijn opgenomen in het helpbestand, zodat u deze indien nodig kunt raadplegen.
Hoe Log4j te gebruiken Selenium
Stap 1) In EclipseMaak een nieuw project aan met de naam log4j_demo.
Stap 2) Klik met de rechtermuisknop op src -> Build Path -> Configure Build Path.
Stap 3) Klik op Bibliotheken en voeg de Log4j-bibliotheek toe. Deze kan worden gedownload via https://logging.apache.org/log4j/1.2/download.html.
Stap 4) Maak een nieuw bestand aan. Dit bestand bevat alle Log4j-configuratiegegevens.
- Klik met de rechtermuisknop op src -> Nieuw -> Overig -> Algemeen -> Bestand.
- Geef het bestand de naam "log4j.properties" op.
- Klik op Voltooien.
Maak nog twee bestanden aan en geef ze een naam. Selenium.logs en Manual.logs. Deze bestanden bevatten alle logbestanden die door het systeem zijn aangemaakt, evenals de handmatig vastgelegde instructies.
Stap 5) Kopieer de volledige configuratie naar log4j.properties.
Stap 6) Maak de hoofdklasse aan:
- Klik met de rechtermuisknop op het standaardpakket -> Nieuw -> Klasse.
- Geef de klas een naam en klik op Voltooien.
Stap 7) Kopieer de volgende code naar de hoofdklasse.
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();
}
}
In de bovenstaande code bezoekt het script de pagina https://healthunify.com/bmicalculator/ en controleert de BMI-calculator. Het ingevoerde gewicht is 87 kg en de lengte is 5 voet 10 inch. Het script controleert de uitvoer in SI-, Amerikaanse en Britse eenheden.
Met behulp van Logger.getLogger(โdevpinoyLoggerโ) maakt het script logbestanden op systeemniveau aan. Met de log.debug-methode worden de gegevens opgeslagen in Manual.log.
Stap 8) Voer het script uit. Open de locatie van Handmatig en Selenium logs om de loggegevens te controleren.
Hoe de LogExpert-tool kan worden gebruikt om logs te analyseren
- Download de tool van https://github.com/zarunbal/LogExpertGa naar de downloadmap van LogExpert.
- Open LogExpert.exe.
- Klik op Bestand -> Openen en blader naar de map waar Manual.log zich bevindt. Selenium.log-bestanden worden opgeslagen. Selecteer het bestand.
- Selecteer de optie "Volg de staart".
Door 'Follow tail' te selecteren, wordt het volgen van logbestanden ingeschakeld. Dit betekent dat LogExpert het logbestand automatisch bijwerkt terwijl het script wordt uitgevoerd. Bij andere editors zoals Kladblok moet het bestand herhaaldelijk worden gesloten en opnieuw geopend om de logbestanden bij te werken. In de 'Follow Tail'-modus van LogExpert is dit niet nodig.
De volgende afbeeldingen tonen de indeling van de logboeken.
Met behulp van LogExpert worden de logbestanden die door de Selenium WebDriver kan worden gedebugd. Met deze tool kan men:
- Zoek naar elke tekst en reguliere expressie.
- Maak bladwijzers aan, voeg opmerkingen toe en navigeer tussen bladwijzers, iets wat in geen enkel ander programma mogelijk is.
- Filter de logbestanden, zoek naar tekstbereiken en pas een ander filter toe op de eerder gefilterde logbestanden.
- Markeer verschillende regels op basis van bepaalde woorden.
Deze tool helpt ook om de gegevens in verschillende kolommen te verdelen.












