Як використовувати Log4j у Selenium?

⚡ Розумний підсумок

Увійти4j Selenium є швидким, гнучким Java фреймворк для ведення журналу, який записує деталі потоку скриптів автоматизації. Він підтримує кілька рівнів журналу, додавачів та макетів, а також добре поєднується з LogExpert для аналізу згенерованих файлів журналу.

  • 🔘 Компоненти: Log4j побудовано на основі логгерів, додатків та макетів, які разом фіксують, маршрутизують та форматують події журналу для Selenium проекти автоматизації.
  • ☑️ Рівні журналів: Сім рівнів (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF) контролюють, скільки деталей записується під час виконання та налагодження скрипта.
  • Додатки: ConsoleAppender, FileAppender та RollingFileAppender вирішують, куди записи журналу надсилатимуться: до консолі, статичного файлу чи постійного набору файлів.
  • 🧪 Конфігурація: Файл log4j.properties визначає кореневі та прикладні логери, шляхи до файлів, максимальний розмір файлу, індекс резервної копії та правила форматування PatternLayout.
  • 🛠️ Переглядач LogExpert: Безкоштовний інструмент LogExpert завершує роботу Selenium і файли журналів вручну в режимі реального часу з фільтрацією, додаванням закладок, виділенням та переглядом кількох вкладок.

Як використовувати Log4j у Selenium

Що таке Log4j в Selenium?

Log4j — це швидкий, гнучкий та надійний фреймворк (API) для ведення журналу, написаний мовою... Java та розроблений на початку 1996 року. Він розповсюджується за ліцензією Apache Ліцензія на програмне забезпечення. Log4j було портовано на C, C++, C#, Perl, Python, Ruby та Eiffel. Це інструмент, який використовується для малого та великого масштабу Selenium проекти автоматизації.

Навіщо використовувати Log4j?

Log4j пропонує кілька практичних переваг для Selenium проекти:

  • Це відкритий код.
  • За допомогою Log4j можна зберігати деталі потоку Selenium автоматизація у файлі або базі даних.
  • Log4j працює як для великих, так і для малих проектів.
  • У Log4j оператори журналу замінюють оператори System.out.println у коді, щоб знати статус проекту під час його виконання.

Компоненти Log4j

Компоненти Log4j

Лісоруби

Логер відповідає за реєстрацію інформації. Щоб впровадити логери в проекті, необхідно виконати такі кроки.

Створіть екземпляр для класу Logger

Клас Logger – це Javaутиліта на основі , яка має всі загальні методи, що вже реалізовані для використання Log4j.

Визначте рівень Log4j

В основному існує сім видів рівнів журналу:

  1. ВСІ – Цей рівень ведення журналу записує все (він вмикає всі журнали).
  2. DEBUG – виводить інформацію для налагодження та корисна на етапі розробки.
  3. INFO – виводить інформаційні повідомлення, що висвітлюють хід виконання програми.
  4. WARN – виводить інформацію про несправну та неочікувану поведінку системи.
  5. ПОМИЛКА – виводить повідомлення про помилки, які можуть дозволити системі продовжити роботу.
  6. ФАТАЛЬНИЙ – виводить критично важливу для системи інформацію, яка призводить до аварійного завершення роботи програми.
  7. ВИМК. – Журнал не ведеться.

Додатки

Додавач (Appender) використовується для доставки подій журналу (LogEvents) до місця призначення. Він вирішує, що робити з інформацією журналу. Простими словами, він записує журнали у файл. Нижче наведено кілька типів Додавачів (Appender):

  1. ConsoleAppender записує дані у стандартний вивід.
  2. FileAppender друкує журнали у певний файл.
  3. RollingFileAppender записує дані у файл максимального розміру.

Примітка: У log4j.properties аппендером можна викликати будь-яке ім'я. Існують також інші аппендери, але тут основна увага зосереджена на цих кількох.

макети

Макет відповідає за форматування інформації журналу в різних стилях.

Клас Logger надає різні методи для обробки дій журналювання. Він надає два статичні методи для отримання об'єкта Logger.

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

Як налаштовано Log4j?

Щоб налаштувати Log4j, виберіть, який додаток реалізувати. Параметри додатка встановлюються відповідно.

  • Використовуйте рівень DEBUG та RollingFileAppender.
  • Створюються дві конфігурації або журнали:
    • По-перше: кореневий логер, який записує всі згенеровані системою журнали у файл з назвою Selenium.logs.
    • Другий: реєстратор застосунків, який записує інформацію, згенеровану вручну командами в коді, у файл з назвою Manual.logs.
  • Використаний макет — 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

#Журнали програми

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

У наведеному вище прикладі Log4j налаштовано для входу у два різні файли з іменами Selenium.log і Manual.log.

  • file і dest1 є двома ідентифікаторами.
  • «Файл» використовується для позначення імені файлу, в якому зберігаються журнали.
  • «maxFileSize» використовується для налаштування максимального розміру файлу журналу. Коли файл досягає цього розміру, створюється новий файл з тим самим іменем, а старе ім'я файлу отримує суфікс індексу.
  • «maxBackupIndex» використовується для налаштування максимальної кількості файлів для резервного копіювання.
  • «Макет» використовується для встановлення формату файлу журналу.
  • «Append» використовується для встановлення функції додавання. Коли для нього встановлено значення «false», щоразу створюється новий файл, а не повторно використовується старий файл для логування.

Як Log4j використовується в скрипті?

У коді «log» використовується як змінна посилання, що посилається на метод getLogger класу Logger.

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

Використовуйте змінну посилання "log" та метод debug для запису необхідної інформації.

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

Що таке інструмент LogExpert?

LogExpert – це інструмент з такими характеристиками:

  1. LogExpert – це Windows інструмент, розроблений для обробки колод.
  2. Це безкоштовний переглядач журналів з відкритим кодом.
  3. Це інструмент аналізу журналів з кількома функціями, такими як пошук, фільтрація, додавання закладок та виділення журналів.
  4. Файли журналів автоматично оновлюються під час відкриття в цьому інструменті.
  5. Кілька файлів журналів можна відкрити в різних вкладках.
  6. До закладок можна додавати коментарі, а клавіша швидкого доступу дозволяє переходити між різними закладками. Для навігації доступний повний список закладок.
  7. У файлі довідки наведено скорочення клавіш для цього інструменту, щоб до них можна було звертатися за потреби.

Як використовувати Log4j в Selenium

Крок 1) In Eclipse, створіть новий проект з назвою log4j_demo.

Використовуйте Log4j In Selenium

Крок 2) Клацніть правою кнопкою миші на src -> Шлях збірки -> Налаштувати шлях збірки.

Використовуйте Log4j In Selenium

Крок 3) Натисніть на Бібліотеки та додайте бібліотеку Log4j. Її можна завантажити з https://logging.apache.org/log4j/1.2/download.html.

Використовуйте Log4j In Selenium

Крок 4) Створіть новий файл. Цей файл містить усю конфігурацію Log4j.

  1. Клацніть правою кнопкою миші на src -> Створити -> Інше -> Загальне -> Файл.
  2. Вкажіть ім'я файлу як «log4j.properties».
  3. Натисніть кнопку Готово.

Створіть ще два файли та назвіть їх Selenium.logs та Manual.logs. Ці файли містять усі журнали, створені системою, та вручну зареєстровані оператори.

Використовуйте Log4j In Selenium

Крок 5) У log4j.properties скопіюйте всю конфігурацію.

Використовуйте Log4j In Selenium

Крок 6) Створіть основний клас:

  1. Клацніть правою кнопкою миші на пакеті за замовчуванням -> Новий -> Клас.
  2. Дайте назву класу та натисніть кнопку «Готово».

Використовуйте Log4j In Selenium

Крок 7) Скопіюйте наступний код в основний клас.

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

У наведеному вище коді скрипт відвідує https://healthunify.com/bmicalculator/ і перевіряє калькулятор ІМТ. Введена вага становить 87 кг, а зріст — 5 футів 10 дюймів. Скрипт перевіряє вивід в одиницях СІ, США та Великобританії.

Використовуючи Logger.getLogger(“devpinoyLogger”), скрипт створює журнали системного рівня. За допомогою методу log.debug дані зберігаються в Manual.log.

Крок 8) Запустіть сценарій. Відкрийте розташування Manual і Selenium журнали для перевірки даних журналу.

Як інструмент LogExpert можна використовувати для аналізу журналів

  1. Завантажте інструмент з https://github.com/zarunbal/LogExpertПерейдіть до папки завантажень LogExpert.

    Інструмент LogExpert можна використовувати для аналізу журналів

  2. Відкрийте файл LogExpert.exe.
  3. Натисніть Файл -> Відкрити та перейдіть до шляху, де знаходяться файли Manual.log та SeleniumЗберігаються файли .log. Виберіть файл.
  4. Виберіть опцію «Слідувати за хвостом».

    Інструмент LogExpert можна використовувати для аналізу журналу

    Вибір опції «Слідкувати за хвостом» активує відстеження журналів, що означає, що LogExpert автоматично оновлює файл журналу під час виконання скрипта. У будь-якому іншому редакторі, такому як Блокнот, файл потрібно неодноразово закривати та відкривати для оновлення журналів. Якщо LogExpert увімкнено режим «Слідкувати за хвостом», це не потрібно.

    На наступних зображеннях показано розташування колод.

    Інструмент LogExpert можна використовувати для аналізу журналу

    Інструмент LogExpert можна використовувати для аналізу журналу

За допомогою LogExpert журнали, створені Selenium WebDriver можна налагоджувати. У цьому інструменті можна:

  • Пошук будь-якого тексту та регулярного виразу.
  • Створюйте закладки та коментуйте їх, а також переміщайтеся між закладками, що неможливо в жодному іншому інструменті.
  • Фільтруйте журнали, знайдіть текстові діапазони та застосуйте інший фільтр до раніше відфільтрованих журналів.
  • Виділіть різні рядки на основі певних слів.

Цей інструмент також допомагає розділити дані на різні стовпці.

Поширені запитання

Життєвий цикл Log4j 1.x завершився у 2015 році та використовує файл властивостей або XML для налаштування. Log4j 2.x пропонує кращу продуктивність, асинхронні логери, підтримку лямбда та покращену безпеку після виправлень Log4Shell, що робить його рекомендованим вибором для нових проектів.

Log4j підтримує налаштовувані рівні журналів, постійний вивід файлів, постійне резервне копіювання та структуровані шаблони. System.out.println записує дані лише в консоль і не може бути фільтрований або архівований. Log4j робить Selenium результати тестів легше сортувати, перевіряти та відтворювати.

Так. Помічники штучного інтелекту можуть аналізувати великі обсяги виводу Log4j, кластеризувати повторювані збої та виявляти першопричини помилок. Selenium пробіжки. Вони виділяють нечіткі локатори, повільні кроки та складаються traces, перетворюючи необроблені рядки журналу на пріоритетні дії для інженерів з контролю якості.

Платформи спостереження на основі штучного інтелекту обробляють потоки Log4j, виявляють аномалії в режимі реального часу та прогнозують збої, перш ніж вони вплинуть на користувачів. Моделі машинного навчання оцінюють серйозність, дедуплікують шумні події та запускають інтелектуальні сповіщення, замінюючи ручні робочі процеси grep проактивним моніторингом.

Ні. LogExpert — це популярний безкоштовний Windows переглядач із відстеженням хвоста та фільтрацією, але альтернативи включають BareTail, glogg, Klogg та повноцінні платформи, такі як Splunk, Graylogабо стек ELK для централізованого аналізу на багатьох машинах.

Підсумуйте цей пост за допомогою: