วิธีการใช้งาน Log4j ใน Selenium?

⚡ สรุปอย่างชาญฉลาด

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

  • 🔘 องค์ประกอบ Log4j สร้างขึ้นโดยใช้ Logger, Appender และ Layout ซึ่งทำงานร่วมกันเพื่อบันทึก ส่งต่อ และจัดรูปแบบเหตุการณ์บันทึกข้อมูล Selenium โครงการระบบอัตโนมัติ
  • ☑️ ระดับการบันทึก: มีเจ็ดระดับ (ทั้งหมด, ดีบัก, ข้อมูล, คำเตือน, ข้อผิดพลาด, ร้ายแรง, ปิด) ที่ควบคุมระดับรายละเอียดที่จะบันทึกระหว่างการทำงานของสคริปต์และการดีบัก
  • ตัวเพิ่มข้อมูล: ConsoleAppender, FileAppender และ RollingFileAppender จะตัดสินใจว่ารายการบันทึกจะถูกบันทึกไปยังคอนโซล ไฟล์คงที่ หรือชุดไฟล์ที่หมุนเวียนไปเรื่อยๆ
  • 🧪 การกำหนดค่า: ไฟล์ log4j.properties กำหนดค่าตัวบันทึกข้อมูลหลักและตัวบันทึกข้อมูลแอปพลิเคชัน เส้นทางไฟล์ ขนาดไฟล์สูงสุด ดัชนีการสำรองข้อมูล และกฎการจัดรูปแบบ PatternLayout
  • 🛠️ โปรแกรมดูบันทึก LogExpert: เครื่องมือ LogExpert ฟรีใช้งานได้กับโปรแกรมดังกล่าว Selenium และไฟล์บันทึกข้อมูลด้วยตนเองแบบเรียลไทม์ พร้อมฟังก์ชันการกรอง การคั่นหน้า การเน้นข้อความ และการดูหลายแท็บ

วิธีการใช้งาน Log4j ใน Selenium

Log4j คืออะไร Selenium?

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

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

Log4j มีข้อดีในทางปฏิบัติหลายประการ Selenium โครงการ:

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

ส่วนประกอบ Log4j

ส่วนประกอบ Log4j

คนตัดไม้

โปรแกรมบันทึกข้อมูล (Logger) มีหน้าที่บันทึกข้อมูลต่างๆ ในการติดตั้งโปรแกรมบันทึกข้อมูลในโครงการ จำเป็นต้องดำเนินการตามขั้นตอนต่อไปนี้

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

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

กำหนดระดับ Log4j

โดยหลักแล้วมีระดับการบันทึกข้อมูลอยู่เจ็ดประเภท:

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

ภาคผนวก

Appender คืออุปกรณ์ที่ใช้ส่ง LogEvent ไปยังปลายทาง โดยจะตัดสินใจว่าจะเกิดอะไรขึ้นกับข้อมูลบันทึก พูดง่ายๆ ก็คือ มันเขียนบันทึกไปยังไฟล์ ต่อไปนี้เป็นตัวอย่าง Appender บางประเภท:

  1. ConsoleAppender จะบันทึกข้อมูลไปยังเอาต์พุตมาตรฐาน
  2. FileAppender จะพิมพ์บันทึกไปยังไฟล์ที่ระบุไว้
  3. RollingFileAppender จะเขียนข้อมูลลงในไฟล์ที่มีขนาดสูงสุดที่กำหนดไว้

หมายเหตุ ในไฟล์ log4j.properties สามารถเรียกใช้ appender ด้วยชื่อใดก็ได้ นอกจากนี้ยังมี appender อื่นๆ อีก แต่ในที่นี้จะเน้นเฉพาะ appender ไม่กี่ตัวนี้

รูปแบบ

ส่วน Layout มีหน้าที่ในการจัดรูปแบบข้อมูลการบันทึกในรูปแบบต่างๆ

คลาส Logger มีเมธอดต่างๆ สำหรับจัดการกิจกรรมการบันทึกข้อมูล โดยมีเมธอดแบบ static สองเมธอดสำหรับรับอ็อบเจ็กต์ 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{1}:%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 เป็นตัวระบุสองตัว
  • คำว่า “ไฟล์” ใช้สำหรับระบุชื่อไฟล์ที่จะใช้บันทึกข้อมูลบันทึก (logs)
  • “maxFileSize” ใช้สำหรับกำหนดขนาดสูงสุดของไฟล์บันทึก เมื่อไฟล์มีขนาดถึงขนาดนี้ ระบบจะสร้างไฟล์ใหม่ที่มีชื่อเดียวกัน และชื่อไฟล์เดิมจะถูกเพิ่มคำต่อท้ายที่เป็นดัชนี
  • “maxBackupIndex” ใช้สำหรับกำหนดจำนวนไฟล์สูงสุดที่จะสำรองข้อมูล
  • “เค้าโครง” ใช้เพื่อกำหนดรูปแบบของไฟล์บันทึก
  • “Append” ใช้สำหรับตั้งค่าฟังก์ชันการเพิ่มข้อมูล หากตั้งค่าเป็น false ระบบจะสร้างไฟล์ใหม่ทุกครั้งแทนที่จะใช้ไฟล์เก่าในการบันทึกข้อมูลซ้ำ

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

ในโค้ดนั้น “log” ถูกใช้เป็นตัวแปรอ้างอิงที่อ้างถึงเมธอด getLogger ของคลาส Logger

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

ใช้ตัวแปรอ้างอิง “log” และเมธอด debug เพื่อบันทึกข้อมูลที่จำเป็น

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

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

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 สามารถดาวน์โหลดได้จากที่นี่ https://logging.apache.org/log4j/1.2/download.html.

ใช้ Log4j ใน Selenium

ขั้นตอน 4) สร้างไฟล์ใหม่ ไฟล์นี้จะเก็บการตั้งค่าทั้งหมดของ Log4j

  1. คลิกขวาที่ src -> สร้างใหม่ -> อื่นๆ -> ทั่วไป -> ไฟล์
  2. ตั้งชื่อไฟล์ว่า “log4j.properties”
  3. คลิกที่เสร็จสิ้น

สร้างไฟล์เพิ่มอีกสองไฟล์และตั้งชื่อไฟล์เหล่านั้น 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 website");
         driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
         log.debug("entering 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 inches");
         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 น้ำหนักที่ป้อนคือ 87 กิโลกรัม และส่วนสูงคือ 5 ฟุต 10 นิ้ว สคริปต์จะตรวจสอบผลลัพธ์ในหน่วย SI, 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 จะอัปเดตไฟล์บันทึกโดยอัตโนมัติในขณะที่สคริปต์กำลังทำงานอยู่ หากใช้โปรแกรมแก้ไขข้อความอื่นๆ เช่น Notepad คุณจะต้องปิดและเปิดไฟล์ซ้ำๆ เพื่ออัปเดตบันทึก แต่ใน LogExpert ในโหมดติดตามหาง คุณไม่จำเป็นต้องทำเช่นนั้น

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

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

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

เมื่อใช้ LogExpert ระบบจะวิเคราะห์บันทึกที่สร้างขึ้นโดย Selenium WebDriver สามารถดีบักได้ ในเครื่องมือนี้ ผู้ใช้สามารถ:

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

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

คำถามที่พบบ่อย

Log4j 1.x สิ้นสุดการสนับสนุนในปี 2015 และใช้ไฟล์คุณสมบัติหรือไฟล์ XML ในการกำหนดค่า Log4j 2.x นำเสนอประสิทธิภาพที่ดีกว่า ตัวบันทึกข้อมูลแบบอะซิงโครนัส การรองรับ Lambda และความปลอดภัยที่ได้รับการปรับปรุงหลังจากการแก้ไข Log4Shell ทำให้เป็นตัวเลือกที่แนะนำสำหรับโครงการใหม่ ๆ

Log4j รองรับระดับการบันทึกที่กำหนดค่าได้ การส่งออกไฟล์แบบถาวร การสำรองข้อมูลแบบหมุนเวียน และรูปแบบที่มีโครงสร้าง System.out.println เขียนเฉพาะไปยังคอนโซลและไม่สามารถกรองหรือเก็บถาวรได้ Log4j ทำให้ Selenium ผลการทดสอบง่ายต่อการคัดกรอง ตรวจสอบ และทำซ้ำ

ใช่แล้ว ผู้ช่วย AI สามารถวิเคราะห์ข้อมูล Log4j ขนาดใหญ่ จัดกลุ่มความล้มเหลวที่เกิดขึ้นซ้ำๆ และระบุรูปแบบสาเหตุหลักได้ Selenium การรัน พวกเขาเน้นย้ำถึงตัวระบุตำแหน่งที่ไม่เสถียร ขั้นตอนที่ช้า และการเรียงซ้อน tracกล่าวคือ แปลงข้อมูลบันทึกดิบให้เป็นรายการดำเนินการที่จัดลำดับความสำคัญแล้วสำหรับวิศวกร QA

แพลตฟอร์มการสังเกตการณ์ที่ขับเคลื่อนด้วย AI รับข้อมูลจาก Log4j ตรวจจับความผิดปกติแบบเรียลไทม์ และคาดการณ์ความล้มเหลวก่อนที่จะส่งผลกระทบต่อผู้ใช้ โมเดลการเรียนรู้ของเครื่องจะประเมินความรุนแรง กำจัดเหตุการณ์ที่ซ้ำซ้อน และเรียกใช้การแจ้งเตือนอัจฉริยะ แทนที่เวิร์กโฟลว์ grep แบบแมนนวลด้วยการตรวจสอบเชิงรุก

ไม่ LogExpert เป็นโปรแกรมฟรีที่ได้รับความนิยม Windows โปรแกรมดูข้อมูลที่มีฟังก์ชันติดตามหางและกรองข้อมูล แต่ทางเลือกอื่นๆ ได้แก่ BareTail, glogg, Klogg และแพลตฟอร์มเต็มรูปแบบอย่าง Splunk Graylogหรือชุดซอฟต์แวร์ ELK สำหรับการวิเคราะห์แบบรวมศูนย์บนเครื่องคอมพิวเตอร์หลายเครื่อง

สรุปโพสต์นี้ด้วย: