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.

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
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:
- ALLE โ Diese Protokollierungsstufe zeichnet alles auf (alle Protokolle werden aktiviert).
- DEBUG โ gibt Debugging-Informationen aus und ist in der Entwicklungsphase hilfreich.
- INFO โ gibt Informationsmeldungen aus, die den Fortschritt der Anwendung hervorheben.
- WARNUNG โ gibt Informationen รผber fehlerhaftes und unerwartetes Systemverhalten aus.
- FEHLER โ gibt Fehlermeldungen aus, die es dem System mรถglicherweise ermรถglichen, fortzufahren.
- FATAL โ gibt systemkritische Informationen aus, die zum Absturz der Anwendung fรผhren.
- 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:
- ConsoleAppender protokolliert auf der Standardausgabe.
- FileAppender schreibt Protokolle in eine bestimmte Datei.
- 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:
- LogExpert ist ein Windows Tool zur Protokollanalyse entwickelt.
- Es handelt sich um einen kostenlosen und quelloffenen Log-Viewer.
- Es handelt sich um ein Log-Analyse-Tool mit vielfรคltigen Funktionen wie Suchen, Filtern, Setzen von Lesezeichen und Hervorheben von Logs.
- Die Protokolldateien werden beim รffnen in diesem Tool automatisch aktualisiert.
- Mehrere Protokolldateien kรถnnen in verschiedenen Tabs geรถffnet werden.
- Lesezeichen kรถnnen kommentiert werden, und eine Tastenkombination ermรถglicht die Navigation zwischen verschiedenen Lesezeichen. Eine vollstรคndige Lesezeichenliste steht zur Verfรผgung.
- 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.
Schritt 2) Rechtsklick auf src -> Build Path -> Configure Build Path.
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.
Schritt 4) Erstellen Sie eine neue Datei. Diese Datei enthรคlt die gesamte Log4j-Konfiguration.
- Rechtsklick auf src -> Neu -> Sonstige -> Allgemein -> Datei.
- Geben Sie als Dateinamen โlog4j.propertiesโ an.
- 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.
Schritt 5) Kopieren Sie die gesamte Konfiguration in die Datei log4j.properties.
Schritt 6) Erstelle die Hauptklasse:
- Rechtsklick auf das Standardpaket -> Neu -> Klasse.
- Geben Sie der Klasse einen Namen und klicken Sie auf Fertigstellen.
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
- Laden Sie das Tool herunter https://github.com/zarunbal/LogExpertGehen Sie zum LogExpert-Downloadordner.
- รffnen Sie LogExpert.exe.
- 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.
- Wรคhlen Sie die Option โFolgenโ.
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.
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.











