Co to jest Log4j?
Log4j to szybki, elastyczny i niezawodny framework do logowania (APIS) napisany w Javie, opracowany na początku 1996 roku. Jest rozprowadzany na licencji Apache Software License. Log4J został przeniesiony na języki C, C ++, C #, Perl, Python, Ruby i Eiffel. Jest to narzędzie wykorzystywane w małych i dużych projektach Selenium Automation.
Dlaczego warto korzystać z Log4j?
- Jest to oprogramowanie typu open source
- Dzięki Log4j możliwe jest przechowywanie szczegółów przepływu naszego Selenium Automation w pliku lub bazach danych
- Log4j jest używany zarówno do dużych, jak i małych projektów
- W Log4j używamy w kodzie instrukcji dziennika zamiast instrukcji SOPL, aby poznać stan projektu podczas jego wykonywania
Log4j ma trzy główne składniki
- Loggers : jest odpowiedzialny za rejestrowanie informacji. Aby zaimplementować rejestratory do projektu, należy wykonać następujące kroki -
- Utwórz instancję dla klasy logger : Klasa Logger to narzędzie oparte na języku Java, które ma wszystkie metody ogólne już zaimplementowane w celu korzystania z log4j
- Zdefiniuj poziom Log4j : przede wszystkim istnieje pięć rodzajów poziomów dziennika
- Wszystkie - na tym poziomie rejestrowania wszystko jest rejestrowane (włącza wszystkie dzienniki)
- DEBUG - drukuj informacje debugowania i jest pomocny na etapie rozwoju
- INFO - wyświetla komunikat informacyjny, który podkreśla postęp aplikacji
- WARN - drukuj informacje dotyczące wadliwego i nieoczekiwanego zachowania systemu.
- BŁĄD - wydrukuj komunikat o błędzie, który może pozwolić na kontynuację systemu
- FATAL - drukuj krytyczne informacje systemowe, które powodują awarię aplikacji
- WYŁ. - brak logowania
- Appenders : Służy do dostarczania LogEvents do miejsca docelowego. Decyduje o tym, co się stanie z informacjami dziennika. W prostych słowach służy do zapisywania logów w pliku. Poniżej znajduje się kilka typów Appenderów
- ConsoleAppender rejestruje standardowe dane wyjściowe
- Program dołączający plik drukuje dzienniki do jakiegoś pliku
- Rolling file appender do pliku o maksymalnym rozmiarze
Uwaga: We właściwościach log4j możemy wywołać appender o dowolnej nazwie. Są też inni aplikatorzy, ale ograniczymy się do tych kilku.
- Układy : Odpowiada za formatowanie informacji logowania w różnych stylach.
Klasa Logger udostępnia różne metody obsługi działań związanych z rejestrowaniem. Zapewnia dwie statyczne metody uzyskiwania obiektu Logger.
Publiczny rejestrator statyczny getRootLogger ()Publiczny rejestrator statyczny getLogger (nazwa ciągu)
Jak jest skonfigurowany log4j?
Aby skonfigurować log4j, musimy zdecydować, który appender zaimplementować. W związku z tym zostaną ustawione parametry dopełniacza.
- Użyjemy poziomu DEBUG i RollingFileAppender
- Zrobimy dwie konfiguracje lub logi,
- Po pierwsze: root logger, który zapisze wszystkie logi wygenerowane przez system w pliku o nazwie np. Selenium.logs
- Po drugie: zapisze informacje wygenerowane przez ręczne polecenia w kodzie do nazwy pliku - Manual.logs
- Layout będzie PatternLayout
#Root logger
log4j.rootLogger = DEBUG, pliklog4j.appender.file = org.apache.log4j.RollingFileAppenderlog4j.appender.file.File = D: \\ Guru99 \\ src \\ Selenium.logslog4j.appender.file.maxFileSize = 900 KBlog4j.appender.file.maxBackupIndex = 5log4j.appender.file.layout = org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern =% d {ABSOLUTE}% 5p% c {1} :% L -% m% nlog4j.appender.file.Append = false
# Dzienniki aplikacji
log4j.logger.devpinoyLogger = DEBUG, dest1log4j.appender.dest1 = org.apache.log4j.RollingFileAppenderlog4j.appender.dest1.maxFileSize = 900 KBlog4j.appender.dest1.maxBackupIndex = 6log4j.appender.dest1.layout = org.apache.log4j.PatternLayoutlog4j.appender.dest1.layout.ConversionPattern =% d {dd / MM / rrrr GG: mm: ss}% c% m% nlog4j.appender.dest1.File = D: \\ Guru99 \\ src \\ Manual.logslog4j.appender.dest1.Append = false
W powyższym przykładzie skonfigurowaliśmy log4j tak, aby logował się do dwóch różnych plików o nazwach Selenium.log i Manual.log.
- plik i dest1 to dwa identyfikatory.
- „Plik” służy do podania nazwy pliku, w którym będą zapisywane logi
- „maxFileSize” służy do konfigurowania maksymalnego rozmiaru pliku dziennika. Gdy plik osiągnie ten rozmiar, zostanie utworzony nowy plik o tej samej nazwie, a stara nazwa pliku zostanie dodana jako indeks.
- „maxBackupIndex” służy do konfigurowania maksymalnej liczby plików do utworzenia kopii zapasowej.
- „układ” służy do ustawiania formatu pliku dziennika.
- „Dołącz” służy do ustawiania funkcji dołączania. Jeśli jest ustawiona na false, to za każdym razem, gdy zostanie utworzony nowy plik, zamiast starego pliku będzie używany do logowania
Jak log4j jest używany w skrypcie?
W kodzie użyliśmy "log" jako zmiennej referencyjnej odnoszącej się do metody getLogger klasy Logger
Logger log = Logger.getLogger ("devpinoyLogger");
Użyj zmiennej odnoszącej się do „log” i metody debugowania, aby zarejestrować żądane informacje.
log.debug ("- informacje--");
Co to jest narzędzie LogExpert?
- Narzędzie LogExpert to narzędzie dla systemu Windows opracowane w celu dostosowania dzienników
- Jest to darmowa przeglądarka dzienników o otwartym kodzie źródłowym.
- Jest to narzędzie do analizy dzienników z wieloma funkcjami, takimi jak wyszukiwanie, filtrowanie, tworzenie zakładek i wyróżnianie dzienników
- W dziennikach tego narzędzia pliki są automatycznie aktualizowane po otwarciu
- W tym narzędziu możemy otworzyć wiele plików dziennika w różnych zakładkach
- Możemy również dodawać komentarze do zakładek i jest klawisz skrótu do poruszania się między różnymi zakładkami. Możemy również zobaczyć pełną listę zakładek i przejść z tego miejsca
- Skróty do narzędzia są podane w pliku pomocy, aby można je było odnieść do narzędzia.
Kroki, aby użyć Log4j z Selenium
Krok 1) W Eclipse utwórz nowy projekt o nazwie log4j_demo
Krok 2) Kliknij prawym przyciskiem myszy src -> Build Path -> Configure Build Path
Krok 2) Kliknij Biblioteki i dodaj bibliotekę Log4J. Możesz go pobrać z https://logging.apache.org/log4j/1.2/download.html
Krok 3) Utwórz nowy plik. Ten plik będzie zawierał całą konfigurację log4j
- Kliknij prawym przyciskiem myszy src -> Nowy -> Inne -> Ogólne -> Plik
- Podaj nazwę pliku jako „log4j.properties”
- Kliknij Zakończ
Utwórz jeszcze dwa pliki i nadaj im nazwy, takie jak Selenium.logs i Manual.logs. Pliki te będą zawierać wszystkie dzienniki utworzone przez system i ręcznie zarejestrowane instrukcje
Krok 4) W log4j.properties skopiuj całą konfigurację.
Krok 5) Utwórz główną klasę:
- Kliknij prawym przyciskiem myszy pakiet domyślny -> Nowy -> Klasa
- Podaj nazwę klasy i kliknij Zakończ
Krok 6) Skopiuj następujący kod do głównej klasy
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 Automatycznie wygenerowany kod pośredniczący metodySterownik WebDriver = nowy FirefoxDriver ();Logger log = Logger.getLogger ("devpinoyLogger");driver.get („http://healthunify.com/bmicalculator/”);log.debug ("otwieranie strony internetowej");driver.manage (). timeouts (). implicitlyWait (20, TimeUnit.SECONDS);log.debug ("wprowadzanie wagi");driver.findElement (By.name ("wg")). sendKeys ("87");log.debug ("wybieranie kilogramów");driver.findElement (By.name ("opt1")). sendKeys ("kilogramy");log.debug ("wybór wysokości w stopach");driver.findElement (By.name ("opt2")). sendKeys ("5");log.debug ("wybieranie wysokości w calach");driver.findElement (By.name ("opt3")). sendKeys ("10");log.debug ("Kliknięcie na obliczenie");driver.findElement (By.name ("cc")). click ();log.debug ("Pobieranie wartości SIUnit");String SIUnit = driver.findElement (By.name ("si")). GetAttribute ("wartość");log.debug ("Pobieranie wartości USUnit");String USUnit = driver.findElement (By.name ("nas")). GetAttribute ("wartość");log.debug ("Pobieranie wartości UKUnit");String UKUnit = driver.findElement (By.name ("uk")). GetAttribute ("wartość");log.debug ("Pobieranie ogólnego opisu");String note = driver.findElement (By.name ("desc")). GetAttribute ("wartość");System.out.println ("SIUnit =" + SIUnit);System.out.println ("USUnit =" + USUnit);System.out.println ("UKUnit =" + UKUnit);System.out.println ("uwaga =" + uwaga);driver.quit ();}}
W powyższym kodzie odwiedzamy http://healthunify.com/bmicalculator/ i weryfikujemy kalkulator BMI. Wprowadzona waga to 87 kg, a wysokość to 5 stóp i 10 cali. Skrypt sprawdza dane wyjściowe w jednostkach SE, US i UK.
Korzystając z Logger.getLogger ("devpinoyLogger") tworzymy logi systemowe
Korzystając z metody log.debug przechowujemy dane w Manual.log
Krok 7) Uruchom skrypt. Otwórz lokalizację dzienników ręcznych i selenium, aby sprawdzić dane logowania.
W jaki sposób można użyć narzędzia LogExpert do analizy dzienników
- Pobierz narzędzie ze strony http://logexpert.codeplex.com/. Przejdź do folderu pobierania LogExpert
- Otwórz LogExpert.exe
- Kliknij Plik -> Otwórz i Przeglądaj do ścieżki, w której przechowywane są pliki Manual.log i Selenium.log. Wybierz plik
- Wybierz opcję „Follow tail”
Wybranie opcji śledzenia ogona umożliwia dostosowywanie dzienników, co oznacza, że LogExpert automatycznie aktualizuje plik dziennika, gdy skrypt jest w fazie wykonywania. Jeśli używamy dowolnego innego edytora, takiego jak notatnik, musimy raz po raz zamykać i ponownie otwierać plik, aby zaktualizować dzienniki. Ale z ExpertTool w trybie Follow Tail nie jest to wymagane.
Poniższe obrazy przedstawiają układ dzienników
Korzystając z narzędzia LogExpert, można debugować dzienniki utworzone przez selenium webdriver, tak jak w tym narzędziu
- wyszukaj dowolny tekst i wyrażenie regularne,
- tworzyć zakładki i komentować je, a także nawigować między zakładkami, co nie jest możliwe w żadnym innym narzędziu,
- Filtruj dzienniki i wyszukuj zakresy tekstu, a także możesz zastosować inny filtr do poprzednich filtrowanych dzienników,
- Podświetl inną linię na podstawie pewnych słów.
To narzędzie pomaga również podzielić dane na różne kolumny.