Wie man Log4j verwendet Selenium?

โšก Intelligente Zusammenfassung

Melden Sie sich bei 4j an Selenium ist schnell und flexibel Java Ein Logging-Framework, das Ablaufdetails von Automatisierungsskripten aufzeichnet. Es unterstรผtzt mehrere Log-Level, Appender und Layouts und lรคsst sich optimal mit LogExpert zur Analyse der generierten Logdateien kombinieren.

  • ๐Ÿ”˜ Komponenten: Log4j basiert auf Loggern, Appendern und Layouts, die gemeinsam Log-Ereignisse erfassen, weiterleiten und formatieren. Selenium Automatisierungsprojekte.
  • โ˜‘๏ธ Protokollierungsstufen: Sieben Stufen (ALLE, DEBUG, INFO, WARNUNG, FEHLER, SCHWERWIEGEND, AUS) steuern, wie viele Details wรคhrend der Skriptausfรผhrung und beim Debuggen protokolliert werden.
  • โœ… Appender: ConsoleAppender, FileAppender und RollingFileAppender entscheiden, ob Logeintrรคge in die Konsole, eine statische Datei oder einen fortlaufenden Satz von Dateien geschrieben werden.
  • ๐Ÿงช Konfiguration: Eine log4j.properties-Datei definiert Stamm- und Anwendungslogger, Dateipfade, maximale DateigrรถรŸe, Sicherungsindex und PatternLayout-Formatierungsregeln.
  • ๏ธ LogExpert Viewer: Das kostenlose LogExpert-Tool bietet folgende Funktionen: Selenium und manuelle Protokolldateien in Echtzeit mit Filter-, Lesezeichen-, Hervorhebungs- und Mehrtab-Ansicht.

Wie man Log4j verwendet Selenium

Worin ist Log4j enthalten? Selenium?

Log4j ist ein schnelles, flexibles und zuverlรคssiges Logging-Framework (API), das in geschrieben wurde. Java und wurde Anfang 1996 entwickelt. Es wird unter folgender Marke vertrieben: Apache Softwarelizenz. Log4j wurde auf C: portiert. C++, C#, Perl, PythonRuby und Eiffel sind Programmiersprachen. Es handelt sich um ein Werkzeug, das fรผr kleine bis groรŸe Projekte eingesetzt wird. Selenium Automatisierungsprojekte.

Warum Log4j verwenden?

Log4j bietet mehrere praktische Vorteile fรผr Selenium Projekte:

  • Es ist Open Source.
  • Mit Log4j ist es mรถglich, die Ablaufdetails zu speichern Selenium Automatisierung in einer Datei oder Datenbank.
  • Log4j eignet sich sowohl fรผr groรŸe als auch fรผr kleine Projekte.
  • In Log4j ersetzen Log-Anweisungen System.out.println-Anweisungen im Code, um den Status eines Projekts wรคhrend der Ausfรผhrung zu ermitteln.

Log4j-Komponenten

Log4j-Komponenten

Logger

Der Logger ist fรผr die Protokollierung von Informationen zustรคndig. Um Logger in einem Projekt zu implementieren, mรผssen die folgenden Schritte durchgefรผhrt werden.

Erstellen Sie eine Instanz der Logger-Klasse

Die Logger-Klasse ist eine Java-basiertes Hilfsprogramm, das alle generischen Methoden zur Verwendung von Log4j bereits implementiert hat.

Definieren Sie die Log4j-Ebene

Grundsรคtzlich gibt es sieben Arten von Protokollierungsstufen:

  1. ALLE โ€“ Diese Protokollierungsstufe zeichnet alles auf (alle Protokolle werden aktiviert).
  2. DEBUG โ€“ gibt Debugging-Informationen aus und ist in der Entwicklungsphase hilfreich.
  3. INFO โ€“ gibt Informationsmeldungen aus, die den Fortschritt der Anwendung hervorheben.
  4. WARNUNG โ€“ gibt Informationen รผber fehlerhaftes und unerwartetes Systemverhalten aus.
  5. FEHLER โ€“ gibt Fehlermeldungen aus, die es dem System mรถglicherweise ermรถglichen, fortzufahren.
  6. FATAL โ€“ gibt systemkritische Informationen aus, die zum Absturz der Anwendung fรผhren.
  7. AUS โ€“ Keine Protokollierung.

Appender

Ein Appender dient dazu, Logereignisse an ihr Ziel zu รผbermitteln. Er legt fest, was mit den Protokollinformationen geschieht. Vereinfacht gesagt, schreibt er Protokolle in eine Datei. Im Folgenden werden einige Arten von Appendern beschrieben:

  1. ConsoleAppender protokolliert auf der Standardausgabe.
  2. FileAppender schreibt Protokolle in eine bestimmte Datei.
  3. RollingFileAppender schreibt in eine Datei mit einer maximalen GrรถรŸe.

Hinweis: In der Datei log4j.properties kann ein Appender mit einem beliebigen Namen aufgerufen werden. Es gibt auch andere Appender, aber hier konzentrieren wir uns auf diese wenigen.

Layouts

Das Layout ist fรผr die Formatierung von Protokollinformationen in verschiedenen Stilen zustรคndig.

Die Klasse โ€žLoggerโ€œ bietet verschiedene Methoden zur Protokollierung von Aktivitรคten. Sie stellt zwei statische Methoden zum Abrufen eines Logger-Objekts bereit.

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

Wie ist Log4j konfiguriert?

Um Log4j zu konfigurieren, wรคhlen Sie den zu implementierenden Appender aus. Die Parameter des Appenders werden entsprechend festgelegt.

  • Verwenden Sie den DEBUG-Level und RollingFileAppender.
  • Es werden zwei Konfigurationen oder Protokolle erstellt:
    • Zunรคchst: ein Root-Logger, der alle systemgenerierten Protokolle in eine Datei namens schreibt. Selenium.logs.
    • Zweitens: ein Anwendungslogger, der durch manuelle Befehle im Code generierte Informationen in die Datei Manual.logs schreibt.
  • Das verwendete Layout ist PatternLayout.

#Root-Logger

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

#Anwendungsprotokolle

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

Im obigen Beispiel ist Log4j so konfiguriert, dass es in zwei verschiedene Dateien protokolliert, die folgende Namen tragen: Selenium.log und Manual.log.

  • file und dest1 sind die beiden Bezeichner.
  • โ€žDateiโ€œ wird verwendet, um den Dateinamen anzugeben, in dem die Protokolle gespeichert werden.
  • Mit โ€žmaxFileSizeโ€œ lรคsst sich die maximale GrรถรŸe der Protokolldatei konfigurieren. Sobald die Datei diese GrรถรŸe erreicht, wird eine neue Datei mit demselben Namen erstellt, und der alte Dateiname erhรคlt ein Indexsuffix.
  • Mit โ€žmaxBackupIndexโ€œ kann die maximale Anzahl der zu sichernden Dateien konfiguriert werden.
  • Mit โ€žLayoutโ€œ wird das Format der Protokolldatei festgelegt.
  • Mit der Option โ€žAnhรคngenโ€œ wird die Anhรคngefunktion festgelegt. Wenn sie auf โ€žfalseโ€œ gesetzt ist, wird jedes Mal eine neue Datei erstellt, anstatt die alte Datei fรผr die Protokollierung wiederzuverwenden.

Wie wird Log4j innerhalb eines Skripts verwendet?

Im Code wird โ€žlogโ€œ als Referenzvariable verwendet, die auf die getLogger-Methode der Logger-Klasse verweist.

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

Verwenden Sie die Referenzvariable โ€žlogโ€œ und die Debug-Methode, um die benรถtigten Informationen zu protokollieren.

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

Was ist ein LogExpert-Tool?

LogExpert ist ein Tool mit folgenden Eigenschaften:

  1. LogExpert ist ein Windows Tool zur Protokollanalyse entwickelt.
  2. Es handelt sich um einen kostenlosen und quelloffenen Log-Viewer.
  3. Es handelt sich um ein Log-Analyse-Tool mit vielfรคltigen Funktionen wie Suchen, Filtern, Setzen von Lesezeichen und Hervorheben von Logs.
  4. Die Protokolldateien werden beim ร–ffnen in diesem Tool automatisch aktualisiert.
  5. Mehrere Protokolldateien kรถnnen in verschiedenen Tabs geรถffnet werden.
  6. Lesezeichen kรถnnen kommentiert werden, und eine Tastenkombination ermรถglicht die Navigation zwischen verschiedenen Lesezeichen. Eine vollstรคndige Lesezeichenliste steht zur Verfรผgung.
  7. Die Tastenkombinationen des Tools sind in der Hilfedatei angegeben, sodass sie bei Bedarf aufgerufen werden kรถnnen.

So verwenden Sie Log4j in Selenium

Schritt 1) In Eclipse, erstelle ein neues Projekt mit dem Namen log4j_demo.

Verwenden Sie Log4j In Selenium

Schritt 2) Rechtsklick auf src -> Build Path -> Configure Build Path.

Verwenden Sie Log4j In Selenium

Schritt 3) Klicken Sie auf โ€žBibliothekenโ€œ und fรผgen Sie die Log4j-Bibliothek hinzu. Sie kann hier heruntergeladen werden: https://logging.apache.org/log4j/1.2/download.html.

Verwenden Sie Log4j In Selenium

Schritt 4) Erstellen Sie eine neue Datei. Diese Datei enthรคlt die gesamte Log4j-Konfiguration.

  1. Rechtsklick auf src -> Neu -> Sonstige -> Allgemein -> Datei.
  2. Geben Sie als Dateinamen โ€žlog4j.propertiesโ€œ an.
  3. Klicken Sie auf Fertig stellen.

Erstellen Sie zwei weitere Dateien und benennen Sie diese. SeleniumDie Dateien .logs und Manual.logs enthalten alle vom System erstellten Protokolle sowie die manuell protokollierten Eintrรคge.

Verwenden Sie Log4j In Selenium

Schritt 5) Kopieren Sie die gesamte Konfiguration in die Datei log4j.properties.

Verwenden Sie Log4j In Selenium

Schritt 6) Erstelle die Hauptklasse:

  1. Rechtsklick auf das Standardpaket -> Neu -> Klasse.
  2. Geben Sie der Klasse einen Namen und klicken Sie auf Fertigstellen.

Verwenden Sie Log4j In Selenium

Schritt 7) Kopieren Sie den folgenden Code in die Hauptklasse.

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

Im obigen Code besucht das Skript https://healthunify.com/bmicalculator/ und รผberprรผft den BMI-Rechner. Das eingegebene Gewicht betrรคgt 87 kg und die KรถrpergrรถรŸe 1,78 m. Das Skript prรผft die Ausgabe in SI-, US- und UK-Einheiten.

Mithilfe von `Logger.getLogger("devpinoyLogger")` erstellt das Skript Systemprotokolle. Die Daten werden mithilfe der Methode `log.debug` in der Datei `Manual.log` gespeichert.

Schritt 8) Fรผhren Sie das Skript aus. ร–ffnen Sie den Speicherort des Handbuchs und Selenium Protokolle, um die Protokolldaten zu รผberprรผfen.

Wie das LogExpert-Tool zur Analyse von Protokollen verwendet werden kann

  1. Laden Sie das Tool herunter https://github.com/zarunbal/LogExpertGehen Sie zum LogExpert-Downloadordner.

    Das LogExpert-Tool kann zum Analysieren von Protokollen verwendet werden

  2. ร–ffnen Sie LogExpert.exe.
  3. Klicken Sie auf Datei -> ร–ffnen und navigieren Sie zu dem Pfad, in dem Manual.log und Selenium.log-Dateien werden gespeichert. Wรคhlen Sie die Datei aus.
  4. Wรคhlen Sie die Option โ€žFolgenโ€œ.

    Das LogExpert-Tool kann zur Protokollanalyse verwendet werden

    Die Option โ€žProtokollverlauf verfolgenโ€œ aktiviert die Protokollรผberwachung. Das bedeutet, dass LogExpert die Protokolldatei wรคhrend der Skriptausfรผhrung automatisch aktualisiert. Bei anderen Editoren wie Notepad muss die Datei wiederholt geschlossen und wieder geรถffnet werden, um die Protokolle zu aktualisieren. Mit LogExpert im Modus โ€žProtokollverlauf verfolgenโ€œ ist dies nicht erforderlich.

    Die folgenden Bilder zeigen den Aufbau der Protokolle.

    Das LogExpert-Tool kann zur Protokollanalyse verwendet werden

    Das LogExpert-Tool kann zur Protokollanalyse verwendet werden

Mithilfe von LogExpert werden die vom Selenium WebDriver kann debuggt werden. Mit diesem Tool kann man:

  • Suche nach beliebigem Text und regulรคren Ausdrรผcken.
  • Sie kรถnnen Lesezeichen erstellen, diese kommentieren und auch zwischen den Lesezeichen navigieren โ€“ das ist mit keinem anderen Tool mรถglich.
  • Filtern Sie die Protokolle, suchen Sie nach Textbereichen und wenden Sie einen weiteren Filter auf die zuvor gefilterten Protokolle an.
  • Heben Sie anhand bestimmter Wรถrter unterschiedliche Zeilen hervor.

Dieses Tool hilft auch dabei, die Daten in verschiedene Spalten zu unterteilen.

Hรคufig gestellte Fragen

Log4j 1.x wurde 2015 eingestellt und verwendet eine Properties- oder XML-Datei zur Konfiguration. Log4j 2.x bietet dank der Log4Shell-Patches eine hรถhere Performance, asynchrone Logger, Lambda-Unterstรผtzung und verbesserte Sicherheit und ist daher die empfohlene Wahl fรผr neue Projekte.

Log4j unterstรผtzt konfigurierbare Protokollierungsstufen, persistente Dateiausgabe, rollierende Backups und strukturierte Muster. System.out.println schreibt nur in die Konsole und kann nicht gefiltert oder archiviert werden. Log4j macht Selenium Testergebnisse lassen sich leichter priorisieren, รผberprรผfen und reproduzieren.

Ja. KI-Assistenten kรถnnen groรŸe Log4j-Ausgaben analysieren, wiederholte Fehler gruppieren und Ursachenmuster aufdecken. Selenium Lรคufe. Sie heben unzuverlรคssige Locatoren, langsame Schritte und Stapel hervor. traces, indem rohe Logzeilen in priorisierte Aktionspunkte fรผr QA-Ingenieure umgewandelt werden.

KI-gestรผtzte Observability-Plattformen analysieren Log4j-Streams, erkennen Anomalien in Echtzeit und prognostizieren Ausfรคlle, bevor diese sich auf die Nutzer auswirken. Modelle des maschinellen Lernens bewerten den Schweregrad, entfernen irrelevante Ereignisse und lรถsen intelligente Warnmeldungen aus. So werden manuelle Suchvorgรคnge durch proaktives Monitoring ersetzt.

Nein. LogExpert ist ein beliebtes kostenloses Programm. Windows Viewer mit Tail-Follow-Funktion und Filterung, Alternativen sind beispielsweise BareTail, glogg, Klogg und vollstรคndige Plattformen wie Splunk. Graylogoder der ELK-Stack fรผr die zentrale Analyse รผber viele Rechner hinweg.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: