Selenium의 Log4j: Log4j 속성 파일 다운로드 및 사용 방법

Selenium의 Log4j란 무엇입니까?

Log4j는 빠르고 유연하며 안정적인 로깅 프레임워크(APIS)입니다. 자바 1996년 초에 개발되었습니다. 아파치 소프트웨어 라이센스. Log4J는 C, C++, C#으로 포팅되었습니다. , Python, Ruby 및 에펠 언어. 소규모부터 대규모까지의 Selenium Automation 프로젝트에 사용되는 도구입니다.

Log4j를 사용하는 이유는 무엇입니까?

  • 오픈 소스입니다
  • Log4j를 사용하면 흐름 de를 저장할 수 있습니다.tails 파일이나 데이터베이스의 Selenium Automation
  • Log4j는 대규모 프로젝트와 소규모 프로젝트 모두에 사용됩니다.
  • Log4j에서는 코드에서 SOPL 문 대신 로그 문을 사용하여 프로젝트가 실행되는 동안 상태를 알 수 있습니다.

Log4j 구성요소

Log4j 구성요소

로거

정보 로깅을 담당합니다. 프로젝트에 로거를 구현하려면wing 단계를 수행해야 함

로거 클래스에 대한 인스턴스 생성

Logger 클래스는 log4j를 사용하기 위해 이미 구현된 모든 일반 메소드를 갖춘 Java 기반 유틸리티입니다.

Log4j 수준 정의

기본적으로 XNUMX가지 종류의 로그 수준이 있습니다.

  1. 모두 – 이 로깅 수준은 모든 것을 기록합니다(모든 로그를 켭니다).
  2. DEBUG - 디버깅 정보를 인쇄하고 개발 단계에서 도움이 됩니다.
  3. INFO – 신청 진행 상황을 강조하는 정보 메시지를 인쇄합니다.
  4. WARN – 결함이 있거나 예상치 못한 시스템 동작에 관한 정보를 인쇄합니다.
  5. ERROR – 시스템이 계속 작동하도록 허용할 수 있는 오류 메시지를 인쇄합니다.
  6. FATAL – 애플리케이션 충돌을 일으키는 시스템 중요 정보를 인쇄합니다.
  7. 꺼짐 - 로깅 없음

어펜더

LogEvents를 대상으로 전달하는 데 사용됩니다. 로그 정보에 어떤 일이 발생할지 결정합니다. 쉽게 말하면 파일에 로그를 기록하는 데 사용됩니다. 폴로wing 몇 가지 유형의 Appender가 있습니다.

  1. ConsoleAppender는 표준 출력에 기록합니다.
  2. 파일 어펜더는 일부 파일에 로그를 인쇄합니다.
  3. 최대 크기의 파일에 파일 어펜더 롤링

참고 : log4j 속성에서는 임의의 이름으로 Appender를 호출할 수 있습니다. 다른 어펜더도 있지만 우리는 이 몇 가지로 제한하겠습니다.

레이아웃

다양한 스타일의 로깅 정보 형식을 담당합니다.

Logger 클래스는 로깅 활동을 처리하기 위한 다양한 메서드를 제공합니다. Logger 개체를 얻기 위한 두 가지 정적 메서드를 제공합니다.

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

log4j는 어떻게 구성됩니까?

log4j를 구성하려면 구현할 어펜더를 결정해야 합니다. 이에 따라 Appender의 매개변수가 설정됩니다.

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

    위의 예에서는 Selenium.log 및 Manual.log라는 두 개의 서로 다른 파일에 로그인하도록 log4j를 구성했습니다.

    • file과 dest1은 두 개의 식별자입니다.
    • "파일"은 로그가 저장될 파일 이름을 지정하는 데 사용됩니다.
    • "maxFileSize"는 로그 파일의 최대 크기를 구성하는 데 사용됩니다. 파일이 이 크기에 도달하면 동일한 이름의 새 파일이 생성되고 이전 파일 이름이 해당 파일에 인덱스로 추가됩니다.
    • "maxBackupIndex"는 백업할 최대 파일 수를 구성하는 데 사용됩니다.
    • "layout"은 로그 파일의 형식을 설정하는 데 사용됩니다.
    • “Append”는 추가 기능을 설정하는 데 사용됩니다. false로 설정하면 이전 파일이 아닌 새 파일이 생성될 때마다 로깅에 사용됩니다.

    log4j는 스크립트 내에서 어떻게 사용됩니까?

    코드에서는 Logger 클래스의 getLogger 메소드를 참조하는 참조 변수로 "log"를 사용했습니다.

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

    우리가 원하는 정보를 기록하려면 “log” 참조 변수와 디버그 방법을 사용하세요.

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

    LogExpert 도구란 무엇입니까?

    1. LogExpert 도구는 다음을 위한 도구입니다. Windows 로그를 추적하기 위해 개발됨
    2. 무료 오픈 소스 로그 뷰어입니다.
    3. se와 같은 여러 기능을 갖춘 로그 분석 도구입니다.archi로그 ng, 필터링, 북마크 및 강조 표시
    4. 이 도구 로그에서는 파일을 열 때 자동으로 업데이트됩니다.
    5. 이 도구를 사용하면 여러 탭에서 여러 로그 파일을 열 수 있습니다.
    6. 북마크에 댓글을 달 수도 있고, 다양한 북마크 사이를 탐색할 수 있는 단축키도 있습니다. 전체 북마크 목록을 보고 거기에서 탐색할 수도 있습니다.
    7. 도구의 바로 가기는 도움말 파일에 제공되어 도구를 참조할 수 있습니다.

    Selenium에서 Log4j를 사용하는 방법

    단계 1) In Eclipse log4j_demo라는 이름으로 새 프로젝트를 만듭니다.

    Selenium에서 Log4j 사용

    단계 2) src -> 빌드 경로 -> 빌드 경로 구성을 마우스 오른쪽 버튼으로 클릭합니다.

    Selenium에서 Log4j 사용

    단계 3) 라이브러리를 클릭하고 Log4J 라이브러리 추가를 클릭합니다. 다음에서 다운로드할 수 있습니다. https://logging.apache.org/log4j/1.2/download.html

    Selenium에서 Log4j 사용

    단계 4) 새 파일을 만듭니다. 이 파일에는 모든 log4j 구성이 포함됩니다.

    1. src -> 새로 만들기 -> 기타 -> 일반 -> 파일을 마우스 오른쪽 버튼으로 클릭하세요.
    2. 파일 이름을 "log4j.properties"로 지정하십시오.
    3. Finish를 클릭하십시오.

    두 개의 파일을 더 만들고 Selenium.logs 및 Manual.logs와 같은 이름을 지정합니다. 이 파일에는 시스템에서 생성된 모든 로그와 수동으로 기록된 명령문이 포함됩니다.

    Selenium에서 Log4j 사용

    단계 5) log4j.properties에서 전체 구성을 복사합니다.

    Selenium에서 Log4j 사용

    단계 6) 메인 클래스를 생성합니다:

    1. 기본 패키지를 마우스 오른쪽 버튼으로 클릭 -> 새로 만들기 -> 클래스
    2. 클래스 이름을 지정하고 마침을 클릭하세요.

    Selenium에서 Log4j 사용

    단계 7) 팔로우 복사wing 메인 클래스에 코드 입력

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

    위의 코드에서 우리는 다음을 방문합니다. https://healthunify.com/bmicalculator/BMI 계산기를 확인하세요. 입력한 체중은 87KG, 높이는 5피트 10인치입니다. 스크립트는 SE, US 및 UK 단위로 출력을 확인합니다.

    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 도구를 사용하여 로그를 분석할 수 있습니다.

      Follow tail 옵션을 선택하면 로그 테일링이 활성화됩니다. 이는 스크립트가 실행 단계에 있을 때 LogExpert가 자동으로 로그 파일을 업데이트한다는 것을 의미합니다. 메모장과 같은 다른 편집기를 사용하는 경우 로그를 업데이트하려면 파일을 닫았다가 다시 열어야 합니다. 그러나 Follow Tail 모드의 ExpertTool을 사용하면 이것이 필요하지 않습니다.

      FOLLOwing 이미지는 로그의 레이아웃을 보여줍니다.

      LogExpert 도구를 사용하여 로그를 분석할 수 있습니다.

      LogExpert 도구를 사용하여 로그를 분석할 수 있습니다.

    LogExpert 도구를 사용하면 이 도구에서처럼 Selenium Webdriver에 의해 생성된 로그를 디버그할 수 있습니다.

    • 텍스트와 정규식을 검색하고,
    • 북마크를 만들고 댓글을 달 수 있으며 다른 도구에서는 불가능한 북마크 사이를 탐색할 수도 있습니다.
    • 로그를 필터링하고 텍스트 범위를 검색하며 이전에 필터링된 로그에 다른 필터를 적용할 수도 있습니다.
    • 특정 단어를 기반으로 다른 줄을 강조 표시합니다.

    이 도구는 데이터를 여러 열로 분할하는 데에도 도움이 됩니다.