Tổng quan về log4j 1.x

Log4j là một logging framework được sử dụng để theo dõi, ghi nhận những thông tin mà chúng ta muốn khi ứng dụng của chúng ta chạy. Trong bài viết này, chúng ta sẽ cùng tìm hiểu tổng quan về Log4j 1.x và các thành phần của nó các bạn nhé!

Tạo project

Để các bạn có thể dễ hình dung, mình sẽ tạo một project Maven sử dụng Log4j, cấu trúc của project như sau:

Tổng quan về log4j 1.x

Tiếp theo, mình sẽ thêm dependency của Log4j vào project của chúng ta bằng cách sửa tập tin của Maven pom.xml như sau:

Sau khi thêm, project của chúng ta sẽ có các dependencies như sau:

Tổng quan về log4j 1.x

Để làm việc với Log4j phiên bản 1.x, chúng ta cần một tập tin cấu hình cho nó với tên gọi mặc định là log4j.xml nằm trong thư mục /src/main/resources. Bây giờ, mình sẽ tạo tập tin này:

Tổng quan về log4j 1.x

và thêm một ví dụ các cấu hình cần thiết cho Log4j để nó có thể làm việc được. Nội dung của tập tin log4j.xml của mình như sau:

Bây giờ, mình sẽ tạo một lớp Log4jExample để khi chạy, lớp này sẽ sử dụng Log4j và in ra console dòng chữ “Welcome to Log4j!”.

Tổng quan về log4j 1.x

Nội dung của lớp Log4jExample như sau:

Kết quả

Tổng quan về log4j 1.x

Như các bạn thấy, chỉ với bấy nhiêu bước như trên, chúng ta đã có thể làm việc với Log4j rồi. Trong phần tiếp theo, chúng ta sẽ cùng tìm hiểu tổng quan về các thành phần của Log4j tương ứng với ví dụ mà mình vừa làm các bạn nhé!


Các thành phần của log4j

Log4j có 3 thành phần chính để nó có thể làm việc được, đó là:

Đối tượng Logger: đảm nhận việc định nghĩa thông tin nào cần được log.

Trong ví dụ của mình, đối tượng Logger được sử dụng trong lớp Log4jExample để log dòng chữ “Welcome to Log4j!”.

Ngoài ra, chúng ta còn có một đối tượng gọi là Root Logger dùng để định nghĩa cấu hình chung cho tất cả các đối tượng Logger trong ứng dụng của chúng ta. Trong tập tin log4j.xml, các bạn thấy chúng ta có thẻ <root>, thẻ này chính là thẻ dùng để định nghĩa cấu hình cho Root Logger.

Đối tượng Appender: đảm nhận việc thông tin sẽ được log ở đâu.

Trong tập tin log4j.xml của ví dụ trên, mình đã định nghĩa một đối tượng AppenderConsoleAppender để ghi thông tin cần log ra console.

Đối tượng Layout: đảm nhận việc định nghĩa định dạng của thông tin cần log.

Trong đối tượng ConsoleAppender trong ví dụ trên, mình đã sử dụng đối tương PatternLayout để định dạng thông tin cần log.

Và các thành phần hỗ trợ, bao gồm:

  • Đối tượng Level: định nghĩa độ ưu tiên của các thông tin cần log. Đối tượng này định nghĩa 7 cấp độ cần log của các thông tin: OFF, DEBUG, INFOERROR, WARN, FATAL và ALL.
  • Đối tượng Filter: đối tượng này được sử dụng để phân tích các thông tin rồi quyết định thông tin đó có cần log hay không?
  • Đối tượng ObjectRenderer: được sử dụng để định nghĩa một đối tượng Java được log dưới dạng chuỗi sẽ như thế nào?
  • Đối tượng LogManager: đối tượng này dùng để quản lý logging framework.
4.1/5 - (7 bình chọn)

Add Comment