Cách sử dụng Log4j trong Selenium?
⚡ Tóm tắt thông minh
Đăng nhập4j vào Selenium là một ứng dụng nhanh và linh hoạt. Java Khung ghi nhật ký này ghi lại chi tiết luồng hoạt động của các kịch bản tự động hóa. Nó hỗ trợ nhiều cấp độ nhật ký, trình ghi nhật ký và bố cục khác nhau, và hoạt động tốt với LogExpert để phân tích các tệp nhật ký được tạo ra.

Log4j trong là gì Selenium?
Log4j là một framework ghi nhật ký (API) nhanh, linh hoạt và đáng tin cậy được viết bằng... Java và được phát triển vào đầu năm 1996. Nó được phân phối theo giấy phép... Apache Giấy phép phần mềm. Log4j đã được chuyển đổi sang ngôn ngữ C. C++, C#, Perl, PythonCác ngôn ngữ Ruby và Eiffel. Đây là một công cụ được sử dụng cho các dự án quy mô nhỏ đến lớn. Selenium các dự án tự động hóa.
Tại sao nên sử dụng Log4j?
Log4j mang lại một số lợi ích thiết thực cho Selenium dự án:
- Nó là mã nguồn mở.
- Với Log4j, có thể lưu trữ chi tiết luồng của... Selenium Tự động hóa trong một tập tin hoặc cơ sở dữ liệu.
- Log4j phù hợp với cả các dự án lớn và nhỏ.
- Trong Log4j, các câu lệnh ghi nhật ký thay thế các câu lệnh System.out.println trong mã để biết trạng thái của dự án trong khi nó đang thực thi.
Thành phần Log4j
Người khai thác gỗ
Logger chịu trách nhiệm ghi nhật ký thông tin. Để triển khai logger trong một dự án, cần thực hiện các bước sau.
Tạo một thể hiện cho lớp Logger.
Lớp Logger là một JavaTiện ích dựa trên Log4j này đã tích hợp sẵn tất cả các phương thức chung để sử dụng Log4j.
Xác định cấp độ Log4j
Về cơ bản có bảy loại cấp độ ghi nhật ký:
- TẤT CẢ – Mức độ ghi nhật ký này ghi lại mọi thứ (nó bật tất cả các nhật ký).
- DEBUG – lệnh này in ra thông tin gỡ lỗi và rất hữu ích trong giai đoạn phát triển.
- INFO – in ra các thông báo làm nổi bật tiến trình của ứng dụng.
- CẢNH BÁO – in ra thông tin về các lỗi và hành vi bất thường của hệ thống.
- LỖI – in ra các thông báo lỗi có thể cho phép hệ thống tiếp tục hoạt động.
- LỖI NGHIÊM TRỌNG – In ra thông tin quan trọng của hệ thống, gây ra sự cố sập ứng dụng.
- TẮT – Không ghi nhật ký.
Người bổ sung
Appender được sử dụng để chuyển các LogEvent đến đích. Nó quyết định điều gì sẽ xảy ra với thông tin nhật ký. Nói một cách đơn giản, nó ghi nhật ký vào một tệp. Sau đây là một vài loại Appender:
- ConsoleAppender ghi nhật ký vào đầu ra chuẩn.
- FileAppender in các nhật ký vào một tệp cụ thể.
- RollingFileAppender ghi dữ liệu vào một tập tin với kích thước tối đa.
Lưu ý: Trong tệp log4j.properties, một appender có thể được gọi bằng bất kỳ tên nào. Ngoài ra còn có các appender khác, nhưng trọng tâm ở đây là một vài appender này.
Layouts
Phần Bố cục chịu trách nhiệm định dạng thông tin ghi nhật ký theo nhiều kiểu khác nhau.
Lớp Logger cung cấp nhiều phương thức khác nhau để xử lý các hoạt động ghi nhật ký. Nó cung cấp hai phương thức tĩnh để lấy một đối tượng Logger.
public static Logger getRootLogger()
public static Logger getLogger(String name)
Log4j được cấu hình như thế nào?
Để cấu hình Log4j, hãy quyết định sử dụng loại appender nào. Các tham số của appender sẽ được thiết lập tương ứng.
- Sử dụng cấp độ DEBUG và RollingFileAppender.
- Hai cấu hình hoặc nhật ký được tạo ra:
- Đầu tiên: một trình ghi nhật ký gốc, ghi tất cả nhật ký do hệ thống tạo ra vào một tệp có tên Selenium.logs.
- Thứ hai: một trình ghi nhật ký ứng dụng, ghi thông tin được tạo ra bởi các lệnh thủ công trong mã vào tệp có tên Manual.logs.
- Bố cục được sử dụng là PatternLayout.
#Trình ghi nhật ký gốc
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
#Nhật ký ứng dụng
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
Trong ví dụ trên, Log4j được cấu hình để ghi nhật ký vào hai tệp khác nhau có tên là Selenium.log và Manual.log.
- file và dest1 là hai định danh.
- "File" được dùng để chỉ định tên tệp tin nơi lưu nhật ký.
- Tham số “maxFileSize” được sử dụng để cấu hình kích thước tối đa của tệp nhật ký. Khi tệp đạt đến kích thước này, một tệp mới sẽ được tạo với cùng tên và tên tệp cũ sẽ được thêm hậu tố chỉ mục.
- Tham số “maxBackupIndex” được sử dụng để cấu hình số lượng tối đa các tập tin cần sao lưu.
- Bố cục của bố cục được sử dụng để đặt định dạng của tệp nhật ký.
- Tham số “Append” được sử dụng để thiết lập chức năng ghi thêm. Khi được đặt thành false, một tệp mới sẽ được tạo mỗi lần thay vì sử dụng lại tệp cũ để ghi nhật ký.
Log4j được sử dụng như thế nào trong một kịch bản?
Trong đoạn mã, “log” được sử dụng như một biến tham chiếu đến phương thức getLogger của lớp Logger.
Logger log = Logger.getLogger("devpinoyLogger");
Sử dụng biến tham chiếu “log” và phương thức debug để ghi lại thông tin cần thiết.
log.debug("--information--");
Công cụ LogExpert là gì?
LogExpert là một công cụ có những đặc điểm sau:
- LogExpert là một Windows Công cụ được phát triển để theo dõi các khúc gỗ.
- Đây là một trình xem nhật ký hệ thống miễn phí và mã nguồn mở.
- Đây là một công cụ phân tích nhật ký với nhiều tính năng như tìm kiếm, lọc, đánh dấu và tô sáng nhật ký.
- Các tệp nhật ký sẽ tự động được cập nhật khi được mở bằng công cụ này.
- Bạn có thể mở nhiều tệp nhật ký trong các tab khác nhau.
- Bạn có thể thêm nhận xét vào các dấu trang và sử dụng phím tắt để điều hướng giữa các dấu trang khác nhau. Danh sách đầy đủ các dấu trang cũng được hiển thị để dễ dàng tìm kiếm.
- Các phím tắt của công cụ được cung cấp trong tệp trợ giúp để có thể tham khảo khi cần thiết.
Cách sử dụng Log4j trong Selenium
Bước 1) In EclipseHãy tạo một dự án mới với tên là log4j_demo.
Bước 2) Nhấp chuột phải vào src -> Build Path -> Configure Build Path.
Bước 3) Nhấp vào Thư viện và thêm thư viện Log4j. Bạn có thể tải xuống từ đây. https://logging.apache.org/log4j/1.2/download.html.
Bước 4) Tạo một tệp mới. Tệp này chứa tất cả cấu hình của Log4j.
- Nhấp chuột phải vào src -> Mới -> Khác -> Chung -> Tệp.
- Đặt tên tệp là “log4j.properties”.
- Nhấp vào Kết thúc.
Tạo thêm hai tệp nữa và đặt tên cho chúng. SeleniumCác tệp .logs và Manual.logs chứa tất cả nhật ký do hệ thống tạo ra và các câu lệnh được ghi nhật ký thủ công.
Bước 5) Sao chép toàn bộ cấu hình vào tệp log4j.properties.
Bước 6) Tạo lớp chính:
- Nhấp chuột phải vào gói mặc định -> Mới -> Lớp.
- Đặt tên cho lớp học và nhấn nút Hoàn tất.
Bước 7) Sao chép đoạn mã sau vào lớp chính.
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();
}
}
Trong đoạn mã trên, tập lệnh sẽ truy cập... https://healthunify.com/bmicalculator/ và xác minh máy tính chỉ số BMI. Cân nặng đã nhập là 87 KG và chiều cao là 5 feet 10 inches. Chương trình kiểm tra kết quả đầu ra theo đơn vị SI, US và UK.
Sử dụng Logger.getLogger(“devpinoyLogger”), tập lệnh tạo ra các tệp nhật ký cấp hệ thống. Sử dụng phương thức log.debug, dữ liệu được lưu trữ vào Manual.log.
Bước 8) Chạy tập lệnh. Mở vị trí của Manual và Selenium nhật ký để kiểm tra dữ liệu ghi nhật ký.
Cách sử dụng công cụ LogExpert để phân tích nhật ký
- Tải xuống công cụ từ https://github.com/zarunbal/LogExpertTruy cập vào thư mục tải xuống của LogExpert.
- Mở LogExpert.exe.
- Nhấp vào Tệp -> Mở và duyệt đến đường dẫn chứa Manual.log và SeleniumCác tệp .log được lưu trữ. Hãy chọn tệp.
- Chọn tùy chọn “Theo sát đuôi”.
Việc chọn chế độ "Theo dõi nhật ký" cho phép theo dõi quá trình ghi nhật ký, nghĩa là LogExpert sẽ tự động cập nhật tệp nhật ký trong khi tập lệnh đang được thực thi. Với bất kỳ trình soạn thảo nào khác như Notepad, tệp phải được đóng và mở lại nhiều lần để cập nhật nhật ký. Với LogExpert ở chế độ "Theo dõi nhật ký", điều này không cần thiết.
Các hình ảnh sau đây thể hiện bố cục của các nhật ký.
Sử dụng LogExpert, các nhật ký được tạo bởi... Selenium WebDriver có thể được gỡ lỗi. Trong công cụ này, người dùng có thể:
- Tìm kiếm bất kỳ văn bản và biểu thức chính quy nào.
- Tạo dấu trang, bình luận về chúng và điều hướng giữa các dấu trang, điều mà không công cụ nào khác có thể làm được.
- Lọc nhật ký, tìm kiếm các phạm vi văn bản và áp dụng một bộ lọc khác cho nhật ký đã được lọc trước đó.
- Tô sáng các dòng khác nhau dựa trên một số từ nhất định.
Công cụ này còn giúp phân vùng dữ liệu thành các cột khác nhau.











