Đối tượng Level của Log4j

Mặc dù đối tượng Level của Log4j không phải là thành phần chính nhưng nó là đối tượng đầu tiên chúng ta cần phải biết. Đó là bởi vì đối tượng Level định nghĩa độ ưu tiên hay mức độ nghiêm trọng của nội dung message mà chúng ta cần log. Trong bài viết này, chúng ta sẽ cùng tìm hiểu thêm về đối tượng Level này các bạn nhé!

Các cấp độ của đối tượng Level

Có 7 cấp độ được định nghĩa trong đối tượng Level:

  • ALL: đây là cấp độ thấp nhất, LoggerAppender được định nghĩa với cấp độ này, mọi thông tin cần log sẽ được log.
  • DEBUG: ở cấp độ này, các thông tin debug sẽ được log.
  • INFO: ở cấp độ này, các thông tin về luồng làm việc của chương trình sẽ được log.
  • WARN: cấp độ cho cho phép chúng ta log các thông tin cảnh báo của chương trình.
  • ERROR: các lỗi khi chạy chương trình sẽ được log nếu chúng ta sử dụng cấp độ này.
  • FATAL: cấp độ này sẽ log các lỗi nghiêm trọng xảy ra trong chương trình, có thể làm cho chương trình không sử dụng được nữa.
  • OFF: đây là cấp độ cao nhất, được sử dụng khi chúng ta không muốn log bất kỳ thông tin nào nữa.

Độ ưu tiên của các cấp độ từ thấp đến cao như sau: ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF.


Lọc thông tin cần log dựa vào đối tượng Level

Như mình đã nói ở trên, đối tượng Level định nghĩa độ ưu tiên của các thông tin cần log. Các thông tin cần log sẽ được lọc dựa vào độ ưu tiên mà LoggerAppender đang định nghĩa.

Ví dụ, đối tượng Logger và đối tượng Appender đang định nghĩa với LevelINFO, thì tất cả các thông tin cần log ở LevelINFO, WARN, ERROR, FATAL sẽ được log.

Xem xét lại ví dụ trong bài viết trước, bây giờ mình sẽ chỉnh sửa class Log4jExample lại với nội dung như sau:

Như các bạn thấy, mình đang định nghĩa 4 Level: DEBUG, INFO, WARN, ERROR cho đối tượng Logger trong class Example.

Root Logger của Log4j đang định nghĩa với priority là INFO, do đó chúng ta sẽ có kết quả như sau:

Nếu mình chỉnh sửa lại priority của Root Logger thành ERROR thì chỉ có duy nhất một message sau được log:

2.3/5 - (3 bình chọn)

Add Comment