проблема log4j в проекте Java Селена - PullRequest
0 голосов
/ 28 сентября 2018

-Dlog4j.debug = true

Как сделать вышеупомянутую функцию доступной для всех классов?

Я могу запустить ее только в 1 классе, вручную переведя ее в конфигурацию отладки, но когда яперейти к запуску другого класса, он не работает.

Я хочу, чтобы в консоли было доступно следующее описание для всех тестовых классов:

log4j: Trying to find [log4j.xml] using context classloader sun.misc.Launcher$AppClassLoader@5c647e05.
log4j: Trying to find [log4j.xml] using sun.misc.Launcher$AppClassLoader@5c647e05 class loader.
log4j: Trying to find [log4j.xml] using ClassLoader.getSystemResource().
log4j: Trying to find [log4j.properties] using context classloader sun.misc.Launcher$AppClassLoader@5c647e05.
log4j: Using URL 
log4j: Parsing for [root] with value=[debug, console, file  ].
log4j: Level token is [debug].
log4j: Category root set to DEBUG
log4j: Parsing appender named "console".
log4j: Parsing layout options for "console".
log4j: Setting property [conversionPattern] to [%d{MM-dd-yyyy HH:mm:ss} %F %-5p [%t] %c{2} %L - %m%n].
log4j: End of parsing for "console".
log4j: Parsed "console" options.
log4j: Parsing appender named "file".
log4j: Parsing layout options for "file".
log4j: Setting property [conversionPattern] to [%d{ISO8601} %5p [%t] %c{1}:%L - %m%n].
log4j: End of parsing for "file".
log4j: Setting property [append] to [false].
log4j: Setting property [file] to [application.log].
log4j: Setting property [maxBackupIndex] to [10].
log4j: Setting property [maxFileSize] to [10mb ].
log4j: setFile called: application.log, false
log4j: setFile ended
log4j: Parsed "file" options.
log4j: Finished configuring.

1 Ответ

0 голосов
/ 28 сентября 2018

Как настроен log4j?Чтобы настроить log4j, мы должны решить, какой appender реализовать.Соответственно, параметры appender будут установлены.

Мы будем использовать уровень DEBUG и RollingFileAppender. Мы сделаем две конфигурации или логи, во-первых: root logger, который запишет все сгенерированные системой логи в имени файла, т.е. Selenium.logs Second: Запишет информацию, сгенерированную ручными командами в коде, в имя файла - Manual.logs. Макет будет PatternLayout

Root logger

log4j.rootLogger=DEBUG,file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=D:\\ProjectXXX\\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

Журналы приложений

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:\\ ProjectXXX\\src\\Manual.logs
log4j.appender.dest1.Append=false

В приведенном выше коде мы настроили log4j для входа в два разных файла с именами Selenium.log и Manual.log.

file и dest1 - два идентификатора.«Файл» используется для указания имени файла, в котором будут сохраняться журналы. «MaxFileSize» используется для настройки максимального размера файла журнала.Когда файл достигнет этого размера, будет создан новый файл с тем же именем, и старое имя файла будет добавлено в качестве индекса к нему.«maxBackupIndex» используется для настройки максимального количества файлов для резервного копирования.«layout» используется для установки формата файла журнала.«Добавить» используется для установки функции добавления.Если задано значение false, то каждый раз будет создаваться новый файл, а не старый файл будет использоваться для ведения журнала. Как log4j используется в скрипте?В коде мы использовали «log» в качестве ссылочной переменной, ссылающейся на метод getLogger класса Logger

Logger log = Logger.getLogger («devpinoyLogger»);

Использовать «log» ссылающуюся переменную иметод отладки для регистрации нужной нам информации.

log.debug ("- information -");

Что такое инструмент LogExpert?LogExpert - это инструмент для Windows, разработанный для отслеживания журналов. Это бесплатная программа просмотра журналов с открытым исходным кодом.Это инструмент анализа журналов с множеством функций, таких как поиск, фильтрация, создание закладок и выделение журналов. В этом инструменте журналы автоматически обновляются при открытии файлов. В этом инструменте мы можем открывать несколько файлов журналов на разных вкладках. Мы также можем оставлять комментарии в закладках.и есть клавиша быстрого доступа для перехода между различными закладками.Мы также можем увидеть полный список закладок и перейти оттуда к справочному файлу инструментов, чтобы их можно было ссылаться на инструмент.Шаги по использованию Log4j с Selenium Шаг 1) В Eclipse создайте новый проект с именем log4j_demo

Log4j с Selenium Tutorial

Шаг 2) Щелкните правой кнопкой мыши по src -> Build Path -> Configure Build Path

Log4j с Selenium Tutorial

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

Log4j с Selenium Tutorial

Шаг 3) Создайте новый файл.Этот файл будет включать всю конфигурацию log4j

Щелкните правой кнопкой мыши на src -> Создать -> Другие -> Общие -> Файл. Укажите имя файла как "log4j.properties". Нажмите Готово. Создайте еще два файла и дайте имтакие имена, как Selenium.logs и Manual.logs.Эти файлы будут содержать все журналы, созданные системой и вручную зарегистрированные операторы

Log4j с Selenium Tutorial

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

Log4j сSelenium Tutorial

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

Щелкните правой кнопкой мыши на пакете по умолчанию -> New -> Class Дайте имя классу и нажмите на готово Log4j с Selenium Tutorial

Шаг 6) Скопируйте следующий код в основной класс

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("http://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();
    }
}

. В приведенном выше коде мы посетим http://healthunify.com/bmicalculator/and проверки BMI калькулятора.Введенный вес составляет 87 кг, а высота составляет 5 футов 10 дюймов.Скрипт проверяет вывод в единицах SE, US и UK.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...