Как использовать Log4j в Selenium?

⚡ Умное резюме

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

  • 🔘 Компоненты: Log4j построен на основе объектов Logger, Appender и Layouts, которые совместно захватывают, маршрутизируют и форматируют события логирования. Selenium проекты автоматизации.
  • ☑️ Уровни логарифма: Семь уровней (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF) определяют, насколько подробно записывается информация во время выполнения скрипта и отладки.
  • Придатки: Функции ConsoleAppender, FileAppender и RollingFileAppender определяют, будут ли записи журнала отправляться в консоль, статический файл или в постоянно обновляемый набор файлов.
  • 🧪 Конфигурация: Файл log4j.properties определяет корневой и прикладной регистраторы логов, пути к файлам, максимальный размер файла, резервный индекс и правила форматирования PatternLayout.
  • 🇧🇷 Программа просмотра LogExpert: Бесплатный инструмент LogExpert tails Selenium а также файлы журналов, созданные вручную, в режиме реального времени, с возможностью фильтрации, добавления в закладки, выделения и просмотра на нескольких вкладках.

Как использовать Log4j в Selenium

Что такое Log4j? Selenium?

Log4j — это быстрая, гибкая и надежная платформа для логирования (API), написанная на языке программирования... Java Разработан в начале 1996 года. Распространяется под брендом... Apache Лицензионное соглашение на программное обеспечение. Log4j портирован на язык 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. ERROR – выводит сообщения об ошибках, которые могут позволить системе продолжить работу.
  6. FATAL — выводит критически важную для системы информацию, приводящую к сбою приложения.
  7. ВЫКЛ. – Регистрация данных не производится.

Приложения

Аппендер используется для доставки событий LogEvents в место назначения. Он определяет, что будет происходить с информацией из логов. Проще говоря, он записывает логи в файл. Ниже приведены несколько типов аппендеров:

  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.

#Корневой регистратор

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» и метод отладки для записи необходимой информации в лог.

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

Что такое инструмент LogExpert?

LogExpert — это инструмент, обладающий следующими характеристиками:

  1. LogExpert — это Windows Разработан инструмент для обработки хвостовой части бревен.
  2. Это бесплатная программа для просмотра логов с открытым исходным кодом.
  3. Это инструмент для анализа логов с множеством функций, таких как поиск, фильтрация, добавление в закладки и выделение логов.
  4. При открытии в этом инструменте файлы журналов автоматически обновляются.
  5. Несколько файлов журналов можно открыть в разных вкладках.
  6. К закладкам можно добавлять комментарии, а сочетание клавиш позволяет перемещаться между различными закладками. Для навигации доступен полный список закладок.
  7. В справочном файле приведены сочетания клавиш для быстрого доступа к инструменту, чтобы к ним можно было обращаться по мере необходимости.

Как использовать Log4j в Selenium

Шаг 1) In EclipseСоздайте новый проект с именем log4j_demo.

Используйте Log4j в Selenium

Шаг 2) Щелкните правой кнопкой мыши на src -> Путь сборки -> Настроить путь сборки.

Используйте Log4j в Selenium

Шаг 3) Нажмите на «Библиотеки» и добавьте библиотеку Log4j. Ее можно скачать по ссылке: https://logging.apache.org/log4j/1.2/download.html.

Используйте Log4j в Selenium

Шаг 4) Создайте новый файл. В этом файле будет храниться вся конфигурация Log4j.

  1. Щелкните правой кнопкой мыши на src -> Создать -> Другое -> Общие -> Файл.
  2. Укажите имя файла как “log4j.properties”.
  3. Нажмите на Готово.

Создайте еще два файла и назовите их. SeleniumФайлы .logs и Manual.logs содержат все журналы, созданные системой, а также записи, сделанные вручную.

Используйте Log4j в Selenium

Шаг 5) Скопируйте всю конфигурацию в файл log4j.properties.

Используйте Log4j в Selenium

Шаг 6) Создайте основной класс:

  1. Щелкните правой кнопкой мыши по пакету по умолчанию -> Создать -> Класс.
  2. Присвойте классу имя и нажмите «Готово».

Используйте Log4j в 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) Запустите сценарий. Откройте папку с Руководством и 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 можно отлаживать. С помощью этого инструмента можно:

  • Найдите любой текст и используйте регулярное выражение.
  • Создавайте закладки и оставляйте к ним комментарии, а также перемещайтесь между закладками, что невозможно ни в одном другом инструменте.
  • Отфильтруйте журналы, выполните поиск по диапазонам текста и примените еще один фильтр к ранее отфильтрованным журналам.
  • Выделяйте разные строки в зависимости от определенных слов.

Этот инструмент также помогает разделить данные на разные столбцы.

Часто задаваемые вопросы (FAQ)

Поддержка Log4j 1.x прекратилась в 2015 году, и для настройки используется файл свойств или XML. После выхода патчей для Log4Shell Log4j 2.x предлагает более высокую производительность, асинхронные логгеры, поддержку лямбда-функций и улучшенную безопасность, что делает его рекомендуемым выбором для новых проектов.

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

Да. Искусственный интеллект может анализировать большие объемы данных в формате Log4j, группировать повторяющиеся сбои и выявлять закономерности первопричин. Selenium Забеги. Они выявляют ненадежные локаторы, медленные шаги и задержки. tracДа, это позволяет преобразовывать необработанные строки логов в приоритетные задачи для инженеров по контролю качества.

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

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

Подведем итог этой публикации следующим образом: