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

Log4j는 무엇입니까? Selenium?

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

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

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

Log4j 구성요소

Log4j 구성요소

로거

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

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

로거 클래스는 Javalog4j를 사용하기 위해 이미 구현된 모든 일반 메소드를 갖춘 기반 유틸리티

Log4j 수준 정의

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

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

어펜더

LogEvents를 목적지에 전달하는 데 사용됩니다. 로그 정보로 무슨 일이 일어날지 결정합니다. 간단히 말해서, 파일에 로그를 쓰는 데 사용됩니다. 다음은 Appenders의 몇 가지 유형입니다.

  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
    

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

    • 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. 검색, 필터링, 북마크, 로그 강조 표시 등 다양한 기능을 갖춘 로그 분석 도구입니다.
    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. Finish를 클릭하십시오.

    두 개의 파일을 더 만들고 다음과 같은 이름을 지정합니다. 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 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) 스크립트를 실행합니다. 매뉴얼 위치를 열고 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을 사용하면 이것이 필요하지 않습니다.

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

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

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

    LogExpert 도구를 사용하면 이 도구에서와 같이 Selenium Webdriver에서 생성된 로그를 디버깅할 수 있습니다.

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

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