Jak používat Log4j v Selenium?

⚡ Chytré shrnutí

Přihlaste se4j Selenium je rychlý, flexibilní Java Framework pro protokolování, který zaznamenává podrobnosti o toku automatizačních skriptů. Podporuje více úrovní protokolování, doplňků a rozvržení a dobře spolupracuje s LogExpert pro analýzu generovaných souborů protokolování.

  • 🔘 Součásti: Log4j je postaven na loggerech, appenderech a rozvrženích, které společně zachycují, směrují a formátují události protokolu pro Selenium automatizační projekty.
  • ☑️ Úrovně protokolů: Sedm úrovní (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF) řídí, kolik detailů se zaznamenává během provádění a ladění skriptu.
  • (Tj. Dodatky: Metody ConsoleAppender, FileAppender a RollingFileAppender rozhodují, zda se položky protokolu odesílají do konzole, statického souboru nebo do postupné sady souborů.
  • 🧪 Konfigurace: Soubor log4j.properties definuje kořenové a aplikační loggery, cesty k souborům, maximální velikost souboru, index zálohy a pravidla formátování PatternLayout.
  • 🛠️ Prohlížeč LogExpert: Bezplatný nástroj LogExpert končí Selenium a manuální soubory protokolů v reálném čase s filtrováním, záložkami, zvýrazňováním a zobrazením na více kartách.

Jak používat Log4j v Selenium

Co je Log4j in Selenium?

Log4j je rychlý, flexibilní a spolehlivý framework (API) pro protokolování napsaný v... Java a vyvinutý na začátku roku 1996. Je distribuován pod licencí Apache Softwarová licence. Log4j byl portován do jazyka C. C++, C#, Perl, Python, Ruby a Eiffel. Jedná se o nástroj používaný pro malé i velké aplikace. Selenium automatizační projekty.

Proč používat Log4j?

Log4j nabízí několik praktických výhod pro Selenium projekty:

  • Je to open source.
  • S Log4j je možné ukládat podrobnosti o toku Selenium automatizace v souboru nebo databázi.
  • Log4j funguje jak pro velké, tak pro malé projekty.
  • V Log4j příkazy log nahrazují příkazy System.out.println v kódu, aby se zjistil stav projektu během jeho provádění.

Komponenty Log4j

Komponenty Log4j

Dřevorubci

Logger je zodpovědný za zaznamenávání informací. Pro implementaci loggerů v projektu je třeba provést následující kroky.

Vytvořte instanci třídy Logger

Třída Logger je Javautilita založená na -, která má již implementované všechny generické metody pro použití Log4j.

Definujte úroveň Log4j

Primárně existuje sedm druhů úrovní protokolování:

  1. VŠE – Tato úroveň protokolování zaznamenává vše (zapne všechny protokoly).
  2. DEBUG – vypíše ladicí informace a je užitečný ve fázi vývoje.
  3. INFO – vytiskne informační zprávy, které upozorňují na průběh aplikace.
  4. WARN – vypíše informace o chybném a neočekávaném chování systému.
  5. CHYBA – vypíše chybové zprávy, které by mohly umožnit systému pokračovat v činnosti.
  6. FATAL – vypíše kritické systémové informace, které způsobí pád aplikace.
  7. VYP – Žádné protokolování.

Appenders

Appender se používá k doručování událostí LogEvent na jejich místo určení. Rozhoduje, co se stane s informacemi z protokolu. Jednoduše řečeno, zapisuje protokoly do souboru. Následuje několik typů Appenderů:

  1. ConsoleAppender protokoluje do standardního výstupu.
  2. FileAppender vytiskne protokoly do konkrétního souboru.
  3. RollingFileAppender zapisuje do souboru s maximální velikostí.

Poznámka: V souboru log4j.properties lze appender volat s libovolným názvem. Existují i ​​další appendery, ale zde se zaměříme na tyto několik.

Rozvržení

Rozvržení je zodpovědné za formátování informací protokolování v různých stylech.

Třída Logger poskytuje různé metody pro zpracování aktivit protokolování. Nabízí dvě statické metody pro získání objektu Logger.

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

Jak je Log4j konfigurován?

Pro konfiguraci Log4j se rozhodněte, který appender implementovat. Parametry appenderu se nastaví odpovídajícím způsobem.

  • Použijte úroveň DEBUG a RollingFileAppender.
  • Vytvoří se dvě konfigurace nebo protokoly:
    • Zaprvé: kořenový logger, který zapisuje všechny systémem generované logy do souboru s názvem Selenium.logy.
    • Za druhé: aplikační logger, který zapisuje informace generované ručními příkazy v kódu do souboru s názvem Manual.logs.
  • Použité rozvržení je 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

#Aplikační protokoly

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

Ve výše uvedeném příkladu je Log4j nakonfigurován pro protokolování do dvou různých souborů s názvem Selenium.log a Manual.log.

  • file a dest1 jsou dva identifikátory.
  • „Soubor“ se používá k zadání názvu souboru, do kterého se ukládají protokoly.
  • „maxFileSize“ se používá ke konfiguraci maximální velikosti souboru protokolu. Když soubor dosáhne této velikosti, vytvoří se nový soubor se stejným názvem a starý název souboru obdrží příponu indexu.
  • „maxBackupIndex“ se používá ke konfiguraci maximálního počtu zálohovaných souborů.
  • „layout“ se používá k nastavení formátu souboru protokolu.
  • Funkce „Append“ se používá k nastavení. Pokud je nastavena na hodnotu false, pokaždé se vytvoří nový soubor, místo aby se pro protokolování znovu použil starý soubor.

Jak se Log4j používá ve skriptu?

V kódu je „log“ použit jako referenční proměnná odkazující na metodu getLogger třídy Logger.

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

Pro zaznamenání potřebných informací použijte referenční proměnnou „log“ a metodu debug.

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

Co je to nástroj LogExpert?

LogExpert je nástroj s následujícími vlastnostmi:

  1. LogExpert je Windows nástroj vyvinutý pro ocasní řezání klád.
  2. Je to bezplatný prohlížeč protokolů s otevřeným zdrojovým kódem.
  3. Jedná se o nástroj pro analýzu protokolů s několika funkcemi, jako je vyhledávání, filtrování, ukládání do záložek a zvýrazňování protokolů.
  4. Soubory protokolu se automaticky aktualizují při otevření v tomto nástroji.
  5. Více souborů protokolu lze otevřít na různých kartách.
  6. K záložkám lze přidávat komentáře a mezi různými záložkami se pohybuje pomocí klávesové zkratky. Pro navigaci je k dispozici kompletní seznam záložek.
  7. Zkratky nástroje jsou uvedeny v souboru nápovědy, aby se na ně dalo odkázat v případě potřeby.

Jak používat Log4j Selenium

Krok 1) In Eclipse, vytvořte nový projekt s názvem log4j_demo.

Použijte Log4j In Selenium

Krok 2) Klikněte pravým tlačítkem myši na src -> Cesta sestavení -> Konfigurovat cestu sestavení.

Použijte Log4j In Selenium

Krok 3) Klikněte na Knihovny a přidejte knihovnu Log4j. Lze ji stáhnout z https://logging.apache.org/log4j/1.2/download.html.

Použijte Log4j In Selenium

Krok 4) Vytvořte nový soubor. Tento soubor obsahuje veškerou konfiguraci Log4j.

  1. Klikněte pravým tlačítkem myši na src -> Nový -> Ostatní -> Obecné -> Soubor.
  2. Zadejte název souboru jako „log4j.properties“.
  3. Klikněte na Dokončit.

Vytvořte další dva soubory a pojmenujte je Selenium.logs a Manual.logs. Tyto soubory obsahují všechny protokoly vytvořené systémem a ručně zaznamenané příkazy.

Použijte Log4j In Selenium

Krok 5) V souboru log4j.properties zkopírujte celou konfiguraci.

Použijte Log4j In Selenium

Krok 6) Vytvořte hlavní třídu:

  1. Klikněte pravým tlačítkem myši na výchozí balíček -> Nový -> Třída.
  2. Zadejte název třídy a klikněte na Dokončit.

Použijte Log4j In Selenium

Krok 7) Zkopírujte následující kód do hlavní třídy.

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

Ve výše uvedeném kódu skript navštíví https://healthunify.com/bmicalculator/ a ověřuje kalkulačku BMI. Zadaná hmotnost je 87 kg a výška je 170 cm. Skript kontroluje výstup v jednotkách SI, US a UK.

Pomocí metody Logger.getLogger(„devpinoyLogger“) skript vytváří protokoly na úrovni systému. Pomocí metody log.debug se data ukládají do souboru Manual.log.

Krok 8) Spusťte skript. Otevřete umístění Manual a Selenium protokoly pro kontrolu dat protokolování.

Jak lze nástroj LogExpert použít k analýze protokolů

  1. Stáhněte si nástroj z https://github.com/zarunbal/LogExpertPřejděte do složky se staženými soubory LogExpert.

    Nástroj LogExpert lze použít k analýze protokolů

  2. Otevřete soubor LogExpert.exe.
  3. Klikněte na Soubor -> Otevřít a vyhledejte cestu, kde se nacházejí soubory Manual.log a SeleniumJsou uloženy soubory .log. Vyberte soubor.
  4. Vyberte možnost „Sledovat ocas“.

    Nástroj LogExpert lze použít k analýze protokolu

    Výběrem možnosti Sledovat konec protokolů povolíte sledování protokolů, což znamená, že LogExpert automaticky aktualizuje soubor protokolu během provádění skriptu. V jakémkoli jiném editoru, jako je Poznámkový blok, je nutné soubor opakovaně zavírat a znovu otevírat, aby se protokoly aktualizovaly. S LogExpertem v režimu Sledovat konec to není nutné.

    Následující obrázky ukazují rozložení protokolů.

    Nástroj LogExpert lze použít k analýze protokolu

    Nástroj LogExpert lze použít k analýze protokolu

Pomocí LogExpertu se protokoly vytvořené Selenium WebDriver lze ladit. V tomto nástroji je možné:

  • Vyhledejte libovolný text a regulární výraz.
  • Vytvářejte záložky a komentujte je a také se mezi záložkami pohybujte, což v žádném jiném nástroji není možné.
  • Filtrujte protokoly, vyhledejte textové rozsahy a použijte další filtr na dříve filtrované protokoly.
  • Zvýrazněte různé řádky na základě určitých slov.

Tento nástroj také pomáhá rozdělit data do různých sloupců.

Nejčastější dotazy

Podpora Log4j 1.x skončila v roce 2015 a pro konfiguraci používá soubor vlastností nebo XML. Log4j 2.x nabízí po záplatách Log4Shell lepší výkon, asynchronní logery, podporu lambda a vylepšené zabezpečení, což z něj činí doporučenou volbu pro nové projekty.

Log4j podporuje konfigurovatelné úrovně protokolování, trvalý výstup souborů, průběžné zálohy a strukturované vzory. System.out.println zapisuje pouze do konzole a nelze jej filtrovat ani archivovat. Log4j umožňuje Selenium výsledky testů se snáze třídí, auditují a reprodukují.

Ano. Asistenti umělé inteligence dokáží analyzovat velký výstup Log4j, shlukovat opakované chyby a odhalovat vzorce hlavních příčin napříč Selenium běhy. Zvýrazňují nejisté lokátory, pomalé kroky a hromadí se traca přeměnou nezpracovaných řádků protokolu na prioritní akční položky pro QA inženýry.

Platformy pro pozorovatelnost řízené umělou inteligencí přijímají streamy Log4j, detekují anomálie v reálném čase a předpovídají selhání dříve, než se dotknou uživatelů. Modely strojového učení hodnotí závažnost, deduplikují hlučné události a spouštějí inteligentní upozornění, čímž nahrazují manuální pracovní postupy grep proaktivním monitorováním.

Ne. LogExpert je populární bezplatný Windows prohlížeč s funkcí sledování ocasu a filtrováním, ale alternativy zahrnují BareTail, Glogg, Klogg a plnohodnotné platformy jako Splunk, Graylognebo ELK stack pro centralizovanou analýzu napříč mnoha stroji.

Shrňte tento příspěvek takto: