Log4j in Selenium: So laden Sie die Log4j-Eigenschaftendatei herunter und verwenden sie

Was ist Log4j in Selen?

Log4j ist ein schnelles, flexibles und zuverlässiges Protokollierungsframework (APIS), in das geschrieben wurde Javac wurde Anfang 1996 entwickelt. Es wird unter der vertrieben Apache Softwarelizenz. Log4J wurde auf C, C++, C# portiert. Perl, Python, Ruby- und Eiffel-Sprachen. Es handelt sich um ein Tool, das für kleine bis große Selenium-Automatisierungsprojekte verwendet wird.

Warum Log4j verwenden?

  • Es ist eine Open Source
  • Mit Log4j ist es möglich, den Flow de zu speicherntails unserer Selenium Automation in einer Datei oder Datenbanken
  • Log4j wird sowohl für große als auch für kleine Projekte verwendet
  • In Log4j verwenden wir im Code Protokollanweisungen anstelle von SOPL-Anweisungen, um den Status eines Projekts während der Ausführung zu ermitteln

Log4j-Komponenten

Log4j-Komponenten

Logger

Es ist für die Protokollierung von Informationen verantwortlich. So implementieren Sie Logger in ein Projekt:wing Schritte müssen durchgeführt werden

Erstellen Sie eine Instanz für die Logger-Klasse

Die Logger-Klasse ist ein Java-basiertes Dienstprogramm, das alle generischen Methoden zur Verwendung von log4j bereits implementiert hat

Definieren Sie die Log4j-Ebene

Im Wesentlichen gibt es fünf Arten von Protokollebenen

  1. Alle – Diese Protokollierungsebene protokolliert alles (alle Protokolle werden aktiviert).
  2. DEBUG – Drucken Sie die Debugging-Informationen aus und sind in der Entwicklungsphase hilfreich
  3. INFO – Informationsmeldung drucken, die den Fortschritt der Anwendung hervorhebt
  4. WARN – Informationen zu fehlerhaftem und unerwartetem Systemverhalten drucken.
  5. FEHLER – Fehlermeldung ausdrucken, die es dem System ermöglichen könnte, fortzufahren
  6. FATAL – Systemkritische Informationen werden gedruckt, die zum Absturz der Anwendung führen
  7. AUS – Keine Protokollierung

Appender

Es wird verwendet, um LogEvents an ihr Ziel zu übermitteln. Es entscheidet, was mit den Protokollinformationen geschehen soll. Vereinfacht ausgedrückt wird es zum Schreiben der Protokolle in eine Datei verwendet. Following Es gibt einige Arten von Appendern

  1. ConsoleAppender protokolliert die Standardausgabe
  2. Der Datei-Appender druckt Protokolle in eine Datei
  3. Rollender Datei-Appender für eine Datei mit maximaler Größe

Hinweis: In log4j-Eigenschaften können wir Appender mit einem beliebigen Namen aufrufen. Es gibt auch andere Appender, aber wir beschränken uns auf diese wenigen.

Layouts

Es ist für die Formatierung der Protokollierungsinformationen in verschiedenen Stilen verantwortlich.

Die Logger-Klasse stellt verschiedene Methoden zur Verarbeitung von Protokollierungsaktivitäten bereit. Es bietet zwei statische Methoden zum Abrufen eines Logger-Objekts.

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

Wie ist log4j konfiguriert?

Um log4j zu konfigurieren, müssen wir entscheiden, welcher Appender implementiert werden soll. Dementsprechend werden die Parameter des Appenders festgelegt.

  • Wir werden die DEBUG-Ebene und den RollingFileAppender verwenden
  • Wir werden zwei Konfigurationen oder Protokolle durchführen,
  • Erstens: Root-Logger, der alle vom System generierten Protokolle in den Dateinamen schreibt, z. B. Selenium.logs
  • Zweitens: Schreibt die durch manuelle Befehle im Code generierten Informationen in den Dateinamen Manual.logs
  • Das 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<strong>{1}</strong>:%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 haben wir log4j so konfiguriert, dass es zwei verschiedene Dateien namens Selenium.log und Manual.log anmeldet.

    • file und dest1 sind die beiden Bezeichner.
    • „Datei“ wird verwendet, um den Dateinamen anzugeben, in dem Protokolle gespeichert werden
    • Mit „maxFileSize“ wird die maximale Größe der Protokolldatei konfiguriert. Wenn die Datei diese Größe erreicht, wird eine neue Datei mit demselben Namen erstellt und der alte Dateiname als Index hinzugefügt.
    • „maxBackupIndex“ wird verwendet, um die maximale Anzahl der zu sichernden Dateien zu konfigurieren.
    • Mit „Layout“ wird das Format der Protokolldatei festgelegt.
    • „Anhängen“ wird verwendet, um die Anhängefunktion festzulegen. Wenn es auf „false“ gesetzt ist, wird jedes Mal eine neue Datei erstellt und nicht die alte Datei für die Protokollierung verwendet

    Wie wird log4j im Skript verwendet?

    Im Code haben wir „log“ als Referenzvariable verwendet, die auf die getLogger-Methode der Logger-Klasse verweist

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

    Verwenden Sie die Referenzierungsvariable „log“ und die Debug-Methode, um die gewünschten Informationen zu protokollieren.

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

    Was ist ein LogExpert-Tool?

    1. Das LogExpert-Tool ist ein Tool für Windows, das zum Verfolgen von Protokollen entwickelt wurde
    2. Es ist ein kostenloser Open-Source-Protokollbetrachter.
    3. Es handelt sich um ein Protokollanalysetool mit mehreren Funktionen wie Suchen, Filtern, Lesezeichen setzen und Hervorheben der Protokolle
    4. In den Protokollen dieses Tools werden Dateien beim Öffnen automatisch aktualisiert
    5. In diesem Tool können wir mehrere Protokolldateien in verschiedenen Registerkarten öffnen
    6. Wir können auch Kommentare zu Lesezeichen hinzufügen und es gibt eine Tastenkombination zum Navigieren zwischen verschiedenen Lesezeichen. Wir können auch die vollständige Lesezeichenliste sehen und von dort aus navigieren
    7. Verknüpfungen des Tools werden in der Hilfedatei bereitgestellt, sodass sie auf das Tool verwiesen werden können.

    So verwenden Sie Log4j in Selenium

    Schritt 1) In Eclipse Erstellen Sie ein neues Projekt mit dem Namen log4j_demo

    Verwenden Sie Log4j in Selenium

    Schritt 2) Klicken Sie mit der rechten Maustaste auf src -> Build Path -> Build Path konfigurieren

    Verwenden Sie Log4j in Selenium

    Schritt 3) Klicken Sie auf Bibliotheken und Log4J-Bibliothek hinzufügen. Sie können es herunterladen unter 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. Klicken Sie mit der rechten Maustaste auf src -> Neu -> Andere -> Allgemein -> Datei
    2. Geben Sie als Dateinamen „log4j.properties“ ein.
    3. Klicken Sie auf Fertig stellen

    Erstellen Sie zwei weitere Dateien und geben Sie ihnen Namen wie Selenium.logs und Manual.logs. Diese Dateien enthalten alle vom System erstellten Protokolle und manuell protokollierten Anweisungen

    Verwenden Sie Log4j in Selenium

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

    Verwenden Sie Log4j in Selenium

    Schritt 6) Hauptklasse erstellen:

    1. Klicken Sie mit der rechten Maustaste auf Standardpaket -> Neu -> Klasse
    2. Geben Sie den Klassennamen ein und klicken Sie auf „Fertig stellen“.

    Verwenden Sie Log4j in Selenium

    Schritt 7) Kopieren Sie Folgendeswing Code in die Hauptklasse einfügen

    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 webiste");
             driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
    		 log.debug("entring 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 inchs");
             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 besuchen wir https://healthunify.com/bmicalculator/und überprüfen Sie den BMI-Rechner. Das eingegebene Gewicht beträgt 87 kg und die Körpergröße beträgt 5 Fuß 10 Zoll. Das Skript prüft die Ausgabe in SE-, US- und UK-Einheiten.

    Mit Logger.getLogger („devpinoyLogger“) erstellen wir Protokolle auf Systemebene

    Mithilfe der log.debug-Methode speichern wir Daten in Manual.log

    Schritt 8) Führen Sie das Skript aus. Öffnen Sie den Speicherort der manuellen und Selenium-Protokolle, um die Protokollierungsdaten zu überprüfen.

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

    1. Laden Sie das Tool herunter https://github.com/zarunbal/LogExpert . Gehen Sie zum Download-Ordner von LogExpert

      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 die Dateien Manual.log und Selenium.log gespeichert sind. Wählen Sie die Datei aus
    4. Wählen Sie die Option „Follow tail“.

      Das LogExpert-Tool kann zur Protokollanalyse verwendet werden

      Die Auswahl der Option „Follow Tail“ ermöglicht das Tailing von Protokollen, was bedeutet, dass LogExpert die Protokolldatei automatisch aktualisiert, wenn sich das Skript in der Ausführungsphase befindet. Wenn wir einen anderen Editor wie Notepad verwenden, müssen wir die Datei immer wieder schließen und erneut öffnen, um die Protokolle zu aktualisieren. Bei ExpertTool im Follow Tail-Modus ist dies jedoch nicht erforderlich.

      Following Bilder zeigen die Anordnung der Protokolle

      Das LogExpert-Tool kann zur Protokollanalyse verwendet werden

      Das LogExpert-Tool kann zur Protokollanalyse verwendet werden

    Mit dem LogExpert-Tool kann man vom Selenium-Webdriver erstellte Protokolle wie in diesem Tool debuggen

    • nach beliebigen Texten und regulären Ausdrücken suchen,
    • Erstellen Sie Lesezeichen und kommentieren Sie sie. Außerdem können Sie zwischen Lesezeichen navigieren, was in keinem anderen Tool möglich ist.
    • Filtern Sie die Protokolle und suchen Sie nach Textbereichen. Sie können auch einen anderen Filter auf die zuvor gefilterten Protokolle anwenden.
    • Markieren Sie verschiedene Zeilen basierend auf bestimmten Wörtern.

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