Jak korzystać z Log4j w Selenium?

⚡ Inteligentne podsumowanie

Zaloguj się Selenium jest szybki i elastyczny Java Framework do rejestrowania, który rejestruje szczegóły przepływu skryptów automatyzacji. Obsługuje wiele poziomów rejestrowania, appenderów i układów oraz dobrze współpracuje z LogExpert w celu analizy generowanych plików dziennika.

  • 🔘 Składniki: Log4j jest zbudowany wokół rejestratorów, modułów dołączających i układów, które razem przechwytują, kierują i formatują zdarzenia dziennika Selenium projekty automatyzacji.
  • Poziomy dziennika: Siedem poziomów (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF) kontroluje ilość szczegółów rejestrowanych podczas wykonywania skryptu i debugowania.
  • Dodatki: ConsoleAppender, FileAppender i RollingFileAppender decydują, czy wpisy dziennika mają być kierowane do konsoli, pliku statycznego czy ruchomego zestawu plików.
  • 🧪 Konfiguracja: Plik log4j.properties definiuje rejestratory główne i aplikacji, ścieżki plików, maksymalny rozmiar pliku, indeks kopii zapasowej i reguły formatowania PatternLayout.
  • 🛠️. Przeglądarka LogExpert: Bezpłatne narzędzie LogExpert Selenium i ręczne pliki dziennika w czasie rzeczywistym z filtrowaniem, dodawaniem zakładek, wyróżnianiem i przeglądaniem wielu kart.

Jak korzystać z Log4j w Selenium

W czym jest Log4j Selenium?

Log4j to szybka, elastyczna i niezawodna platforma rejestrowania (API) napisana w języku Java i opracowany na początku 1996 roku. Jest dystrybuowany pod nazwą Apache Licencja oprogramowania. Log4j został przeniesiony na język C, C++, C#, Perl, Python, Ruby i Eiffel. Jest to narzędzie wykorzystywane w projektach na małą i dużą skalę. Selenium projekty automatyzacji.

Dlaczego warto używać Log4j?

Log4j oferuje szereg praktycznych korzyści dla Selenium projektowanie:

  • Jest to oprogramowanie typu open source.
  • Dzięki Log4j możliwe jest przechowywanie szczegółów przepływu Selenium automatyzacja w pliku lub bazie danych.
  • Log4j sprawdza się zarówno w przypadku dużych, jak i małych projektów.
  • W Log4j polecenia log zastępują polecenia System.out.println w kodzie, co pozwala na sprawdzenie statusu projektu w trakcie jego wykonywania.

Komponenty Log4j

Komponenty Log4j

Rejestratory

Rejestrator odpowiada za rejestrowanie informacji. Aby wdrożyć rejestratory w projekcie, należy wykonać następujące kroki.

Utwórz instancję klasy Logger

Klasa Logger jest JavaNarzędzie oparte na Log4j, które ma już zaimplementowane wszystkie ogólne metody umożliwiające korzystanie z Log4j.

Zdefiniuj poziom Log4j

Zasadniczo wyróżnia się siedem rodzajów poziomów rejestrowania:

  1. WSZYSTKIE – Ten poziom rejestrowania zapisuje wszystko (włącza wszystkie rejestry).
  2. DEBUG – wyświetla informacje debugowania i jest pomocny na etapie rozwoju.
  3. INFO – drukuje komunikaty informacyjne, które podkreślają postęp aplikacji.
  4. WARN – drukuje informacje dotyczące wadliwego i nieoczekiwanego zachowania systemu.
  5. ERROR – drukuje komunikaty o błędach, które mogą umożliwić kontynuację działania systemu.
  6. FATAL – drukuje krytyczne informacje systemowe powodujące awarię aplikacji.
  7. WYŁ. – Brak rejestrowania.

dołączacze

Appender służy do dostarczania zdarzeń LogEvent do miejsca przeznaczenia. Decyduje on o tym, co stanie się z informacjami z logu. Mówiąc prościej, zapisuje logi do pliku. Oto kilka typów appenderów:

  1. ConsoleAppender zapisuje dane na wyjściu standardowym.
  2. FileAppender drukuje logi do określonego pliku.
  3. RollingFileAppender zapisuje do pliku o maksymalnym rozmiarze.

Uwaga: W pliku log4j.properties appender można wywołać z dowolną nazwą. Istnieją również inne appendery, ale tutaj skupimy się na tych kilku.

układy

Układ odpowiada za formatowanie rejestrowanych informacji w różnych stylach.

Klasa Logger udostępnia różne metody obsługi aktywności rejestrowania. Udostępnia dwie statyczne metody uzyskiwania obiektu Logger.

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

Jak konfiguruje się Log4j?

Aby skonfigurować Log4j, zdecyduj, który program dołączający chcesz zaimplementować. Parametry programu dołączającego są odpowiednio ustawiane.

  • Użyj poziomu DEBUG i RollingFileAppender.
  • Tworzone są dwie konfiguracje lub dzienniki:
    • Po pierwsze: główny rejestrator, który zapisuje wszystkie wygenerowane przez system logi do pliku o nazwie Selenium.logi.
    • Drugi: rejestrator aplikacji, który zapisuje informacje wygenerowane przez polecenia ręczne w kodzie do pliku o nazwie Manual.logs.
  • Użyty układ to PatternLayout.

#Rootowy rejestrator

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

#Dzienniki aplikacji

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

W powyższym przykładzie Log4j jest skonfigurowany do logowania się do dwóch różnych plików o nazwach Selenium.log i Manual.log.

  • file i dest1 to dwa identyfikatory.
  • „Plik” służy do podania nazwy pliku, w którym zapisywane są logi.
  • Parametr „maxFileSize” służy do skonfigurowania maksymalnego rozmiaru pliku dziennika. Gdy plik osiągnie ten rozmiar, tworzony jest nowy plik o tej samej nazwie, a stara nazwa pliku otrzymuje sufiks indeksu.
  • „maxBackupIndex” służy do skonfigurowania maksymalnej liczby plików, które mają zostać objęte kopią zapasową.
  • „Układ” służy do ustawiania formatu pliku dziennika.
  • Opcja „Append” służy do ustawienia funkcji append. Po ustawieniu jej na false, za każdym razem tworzony jest nowy plik, zamiast ponownego używania starego pliku do rejestrowania.

Jak Log4j jest używany w skrypcie?

W kodzie „log” jest używany jako zmienna referencyjna odwołująca się do metody getLogger klasy Logger.

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

Użyj zmiennej referencyjnej „log” i metody debugowania, aby zalogować potrzebne informacje.

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

Co to jest narzędzie LogExpert?

LogExpert to narzędzie o następujących cechach:

  1. LogExpert jest Windows narzędzie opracowane do śledzenia kłód.
  2. Jest to darmowa i otwartoźródłowa przeglądarka logów.
  3. Jest to narzędzie do analizy logów, wyposażone w wiele funkcji, takich jak wyszukiwanie, filtrowanie, dodawanie zakładek i wyróżnianie logów.
  4. Pliki dziennika są automatycznie aktualizowane po otwarciu w tym narzędziu.
  5. Można otwierać wiele plików dziennika w różnych kartach.
  6. Do zakładek można dodawać komentarze, a klawisz skrótu umożliwia nawigację między zakładkami. Pełna lista zakładek jest dostępna do nawigacji.
  7. Skróty narzędzi znajdują się w pliku pomocy, aby w razie potrzeby można było do nich odwołać się.

Jak korzystać z Log4j w Selenium

Krok 1) In Eclipse, utwórz nowy projekt o nazwie log4j_demo.

Użyj Log4j In Selenium

Krok 2) Kliknij prawym przyciskiem myszy na src -> Ścieżka kompilacji -> Konfiguruj ścieżkę kompilacji.

Użyj Log4j In Selenium

Krok 3) Kliknij „Biblioteki” i dodaj bibliotekę Log4j. Można ją pobrać ze strony https://logging.apache.org/log4j/1.2/download.html.

Użyj Log4j In Selenium

Krok 4) Utwórz nowy plik. Ten plik zawiera całą konfigurację Log4j.

  1. Kliknij prawym przyciskiem myszy na src -> Nowy -> Inne -> Ogólne -> Plik.
  2. Podaj nazwę pliku „log4j.properties”.
  3. Kliknij Zakończ.

Utwórz dwa kolejne pliki i nadaj im nazwy Selenium.logs i Manual.logs. Pliki te zawierają wszystkie logi utworzone przez system oraz ręcznie zarejestrowane polecenia.

Użyj Log4j In Selenium

Krok 5) W log4j.properties skopiuj całą konfigurację.

Użyj Log4j In Selenium

Krok 6) Utwórz klasę główną:

  1. Kliknij prawym przyciskiem myszy na domyślnym pakiecie -> Nowy -> Klasa.
  2. Nadaj klasie nazwę i kliknij Zakończ.

Użyj Log4j In Selenium

Krok 7) Skopiuj poniższy kod do klasy głównej.

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

W powyższym kodzie skrypt odwiedza https://healthunify.com/bmicalculator/ i weryfikuje kalkulator BMI. Wprowadzona waga to 87 kg, a wzrost to 5 stóp i 10 cali. Skrypt sprawdza wyniki w jednostkach SI, amerykańskich i brytyjskich.

Za pomocą Logger.getLogger(“devpinoyLogger”) skrypt tworzy logi na poziomie systemu. Za pomocą metody log.debug dane są zapisywane w pliku Manual.log.

Krok 8) Uruchom skrypt. Otwórz lokalizację Podręcznika i Selenium logi, aby sprawdzić dane logowania.

Jak można wykorzystać narzędzie LogExpert do analizy logów

  1. Pobierz narzędzie z https://github.com/zarunbal/LogExpertPrzejdź do folderu pobierania LogExpert.

    Narzędzie LogExpert może służyć do analizy logów

  2. Otwórz LogExpert.exe.
  3. Kliknij Plik -> Otwórz i przejdź do ścieżki, w której znajdują się pliki Manual.log i SeleniumPliki .log są przechowywane. Wybierz plik.
  4. Wybierz opcję „Podążaj za ogonem”.

    Narzędzie LogExpert może być używane do analizy dziennika

    Wybranie opcji „Follow tail” włącza śledzenie logów, co oznacza, że ​​LogExpert automatycznie aktualizuje plik logu podczas wykonywania skryptu. W każdym innym edytorze, takim jak Notatnik, plik musi być wielokrotnie zamykany i otwierany, aby zaktualizować logi. W LogExpert w trybie „Follow tail” nie jest to wymagane.

    Poniższe obrazy pokazują układ kłód.

    Narzędzie LogExpert może być używane do analizy dziennika

    Narzędzie LogExpert może być używane do analizy dziennika

Korzystając z LogExpert, logi utworzone przez Selenium WebDriver można debugować. W tym narzędziu można:

  • Wyszukaj dowolny tekst i wyrażenie regularne.
  • Możesz tworzyć zakładki i dodawać do nich komentarze, a także poruszać się między zakładkami, co nie jest możliwe w żadnym innym narzędziu.
  • Przefiltruj dzienniki, wyszukaj zakresy tekstu i zastosuj kolejny filtr do wcześniej przefiltrowanych dzienników.
  • Podświetlaj różne wiersze na podstawie określonych słów.

To narzędzie pomaga również podzielić dane na różne kolumny.

FAQ

Log4j 1.x zakończył wsparcie w 2015 roku i wykorzystuje właściwości lub plik XML do konfiguracji. Log4j 2.x oferuje lepszą wydajność, asynchroniczne rejestratory, obsługę lambda i ulepszone bezpieczeństwo po wprowadzeniu poprawek Log4Shell, co czyni go zalecanym wyborem dla nowych projektów.

Log4j obsługuje konfigurowalne poziomy logów, trwałe dane wyjściowe plików, kopie zapasowe i wzorce strukturalne. System.out.println zapisuje dane tylko na konsoli i nie można go filtrować ani archiwizować. Log4j tworzy… Selenium wyniki testów są łatwiejsze do selekcji, weryfikacji i odtworzenia.

Tak. Asystenci AI potrafią analizować duże dane wyjściowe Log4j, grupować powtarzające się błędy i znajdować wzorce przyczyn źródłowych Selenium biegi. Podkreślają niestabilne lokalizatory, wolne kroki i stosy tracprzekształcając surowe wiersze dziennika w priorytetowe zadania do wykonania dla inżynierów ds. zapewnienia jakości.

Platformy obserwacyjne oparte na sztucznej inteligencji pobierają strumienie Log4j, wykrywają anomalie w czasie rzeczywistym i przewidują awarie, zanim wpłyną one na użytkowników. Modele uczenia maszynowego oceniają wagę, usuwają duplikaty zdarzeń o dużym natężeniu ruchu i wyzwalają inteligentne alerty, zastępując ręczne przepływy pracy z poleceniami grep proaktywnym monitorowaniem.

Nie. LogExpert to popularna, darmowa aplikacja Windows przeglądarka z funkcją śledzenia ogona i filtrowaniem, ale alternatywy obejmują BareTail, glogg, Klogg i pełne platformy, takie jak Splunk, Grayloglub stos ELK do scentralizowanej analizy na wielu maszynach.

Podsumuj ten post następująco: