Log4j เข้า Selenium: วิธีดาวน์โหลดและใช้ไฟล์คุณสมบัติ Log4j

Log4j คืออะไร Selenium?

Log4j เป็นเฟรมเวิร์กการบันทึก (APIS) ที่รวดเร็ว ยืดหยุ่น และเชื่อถือได้ที่เขียนมา Java พัฒนาเมื่อต้นปี พ.ศ. 1996 จัดจำหน่ายภายใต้ อาปาเช่ ใบอนุญาตซอฟต์แวร์ Log4J ได้รับการย้ายไปยัง C C++, C#, Perl, Python, ภาษา Ruby และภาษาไอเฟล เป็นเครื่องมือที่ใช้สำหรับงานขนาดเล็กถึงขนาดใหญ่ Selenium โครงการระบบอัตโนมัติ

ทำไมต้องใช้ Log4j?

  • มันเป็นโอเพ่นซอร์ส
  • ด้วย Log4j คุณสามารถจัดเก็บรายละเอียดการไหลของเราได้ Selenium ระบบอัตโนมัติในไฟล์หรือฐานข้อมูล
  • Log4j ใช้สำหรับโปรเจ็กต์ขนาดใหญ่และขนาดเล็ก
  • ใน Log4j เราใช้คำสั่งบันทึกแทนคำสั่ง SOPL ในโค้ดเพื่อทราบสถานะของโครงการในขณะที่กำลังดำเนินการ

ส่วนประกอบ Log4j

ส่วนประกอบ Log4j

คนตัดไม้

มีหน้าที่รับผิดชอบในการบันทึกข้อมูล เพื่อนำเครื่องบันทึกไปใช้ในโครงการ จำเป็นต้องดำเนินการตามขั้นตอนต่อไปนี้

สร้างอินสแตนซ์สำหรับคลาสคนบันทึก

คลาส Logger คือ a Java- ยูทิลิตี้พื้นฐานที่มีวิธีการทั่วไปทั้งหมดที่ใช้งานแล้วเพื่อใช้ log4j

กำหนดระดับ Log4j

โดยทั่วไปมีระดับบันทึก 5 ประเภท

  1. ทั้งหมด – การบันทึกระดับนี้จะบันทึกทุกอย่าง ( เปิดบันทึกทั้งหมด )
  2. DEBUG – พิมพ์ข้อมูลการดีบักและมีประโยชน์ในขั้นตอนการพัฒนา
  3. INFO – พิมพ์ข้อความแสดงข้อมูลที่เน้นความคืบหน้าของแอปพลิเคชัน
  4. คำเตือน – พิมพ์ข้อมูลเกี่ยวกับพฤติกรรมของระบบที่ผิดพลาดและไม่คาดคิด
  5. ข้อผิดพลาด – ข้อความแสดงข้อผิดพลาดในการพิมพ์ที่อาจทำให้ระบบดำเนินการต่อได้
  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 ตัวใด ดังนั้นพารามิเตอร์ของ appender จะถูกตั้งค่า

  • เราจะใช้ระดับ DEBUG และ RollingFileAppender
  • เราจะทำการกำหนดค่าหรือบันทึกสองรายการ
  • ขั้นแรก: root logger ซึ่งจะเขียนบันทึกที่ระบบสร้างขึ้นทั้งหมดในชื่อไฟล์เช่น Selenium.บันทึก
  • ประการที่สอง: จะเขียนข้อมูลที่สร้างโดยคำสั่งแบบแมนนวลในโค้ดลงในชื่อไฟล์ - 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” ใช้เพื่อกำหนดค่าจำนวนไฟล์สูงสุดที่จะสำรองข้อมูล
    • “เค้าโครง” ใช้เพื่อกำหนดรูปแบบของไฟล์บันทึก
    • “ผนวก” ใช้เพื่อตั้งค่าฟังก์ชันผนวก หากตั้งค่าเป็นเท็จ ทุกครั้งที่มีการสร้างไฟล์ใหม่ แทนที่จะใช้ไฟล์เก่าในการบันทึก

    log4j ถูกใช้ภายในสคริปต์อย่างไร

    ในโค้ด เราใช้ "log" เป็นตัวแปรอ้างอิงที่อ้างอิงถึงวิธี getLogger ของ Logger Class

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

    ใช้ตัวแปรอ้างอิง "บันทึก" และวิธีการแก้ไขข้อบกพร่องเพื่อบันทึกข้อมูลที่เราต้องการ

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

    เครื่องมือ LogExpert คืออะไร

    1. เครื่องมือ LogExpert เป็นเครื่องมือสำหรับ Windows พัฒนาขึ้นเพื่อใช้ตามท่อนไม้
    2. มันเป็นโปรแกรมดูบันทึกโอเพ่นซอร์สฟรี
    3. เป็นเครื่องมือวิเคราะห์บันทึกที่มีคุณลักษณะมากมาย เช่น การค้นหา การกรอง การคั่นหน้า และการเน้นบันทึก
    4. ในบันทึกของเครื่องมือนี้ ไฟล์จะได้รับการอัปเดตโดยอัตโนมัติเมื่อเปิด
    5. ในเครื่องมือนี้ เราสามารถเปิดไฟล์บันทึกได้หลายไฟล์ในแท็บต่างๆ
    6. นอกจากนี้เรายังสามารถใส่ความคิดเห็นบนบุ๊กมาร์กได้และมีปุ่มลัดเพื่อนำทางระหว่างบุ๊กมาร์กต่างๆ นอกจากนี้เรายังสามารถดูรายการบุ๊กมาร์กทั้งหมดและนำทางจากที่นั่นได้
    7. ทางลัดของเครื่องมือมีอยู่ในไฟล์วิธีใช้เพื่อให้สามารถอ้างอิงถึงเครื่องมือได้

    วิธีใช้ Log4j ใน Selenium

    ขั้นตอน 1) In Eclipse สร้างโครงการใหม่ด้วยชื่อ log4j_demo

    ใช้ Log4j ใน Selenium

    ขั้นตอน 2) คลิกขวาที่ src -> Build Path -> Configure Build Path

    ใช้ Log4j ใน Selenium

    ขั้นตอน 3) คลิกที่ Libraries และเพิ่ม Log4J Library คุณสามารถดาวน์โหลดได้จาก 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) เรียกใช้สคริปต์ เปิดตำแหน่งของ Manual และ Selenium บันทึกเพื่อตรวจสอบข้อมูลการบันทึก

    วิธีใช้เครื่องมือ LogExpert เพื่อวิเคราะห์บันทึก

    1. ดาวน์โหลดเครื่องมือจาก https://github.com/zarunbal/LogExpert - ไปที่โฟลเดอร์ดาวน์โหลด LogExpert

      เครื่องมือ LogExpert สามารถใช้วิเคราะห์บันทึกได้

    2. เปิด LogExpert.exe
    3. คลิกที่ไฟล์ -> เปิดและเรียกดูเส้นทางที่ Manual.log และ Seleniumไฟล์ .log จะถูกเก็บไว้ เลือกไฟล์
    4. เลือกตัวเลือก "ติดตามหาง"

      เครื่องมือ LogExpert สามารถใช้วิเคราะห์บันทึกได้

      การเลือกตัวเลือก follow tail จะทำให้สามารถบันทึกส่วนท้ายได้ ซึ่งหมายความว่า LogExpert จะอัปเดตไฟล์บันทึกโดยอัตโนมัติเมื่อสคริปต์อยู่ในขั้นตอนการดำเนินการ หากเราใช้เครื่องมือแก้ไขอื่นเช่นแผ่นจดบันทึก เราจะต้องปิดและเปิดไฟล์อีกครั้งแล้วครั้งเล่าเพื่ออัปเดตบันทึก แต่ด้วย ExpertTool ในโหมด Follow Tail สิ่งนี้ไม่จำเป็น

      รูปภาพต่อไปนี้แสดงเค้าโครงของบันทึก

      เครื่องมือ LogExpert สามารถใช้วิเคราะห์บันทึกได้

      เครื่องมือ LogExpert สามารถใช้วิเคราะห์บันทึกได้

    การใช้เครื่องมือ LogExpert ช่วยให้คุณสามารถดีบักบันทึกที่สร้างโดย Selenium Webdriver ได้ เช่นเดียวกับเครื่องมือนี้

    • ค้นหาข้อความและนิพจน์ทั่วไป
    • สร้างบุ๊กมาร์กและแสดงความคิดเห็นและยังสามารถนำทางระหว่างบุ๊กมาร์กที่ไม่สามารถทำได้ในเครื่องมืออื่น ๆ
    • กรองบันทึกและค้นหาช่วงข้อความและยังสามารถใช้ตัวกรองอื่นกับบันทึกที่กรองก่อนหน้า
    • เน้นบรรทัดที่แตกต่างกันตามคำบางคำ

    เครื่องมือนี้ยังช่วยแบ่งพาร์ติชันข้อมูลออกเป็นคอลัมน์ต่างๆ