Ngưỡng có nghĩa là gì trong Log4J?


80

Tôi có một log4jtài sản giống như dưới đây. Mọi thứ đã đăng nhập TextProcessor.logđều ở trên mức WARN. Tôi không hiểu ngưỡng được đặt ở đây để gỡ lỗi. Ai đó có thể giải thích những gì ngưỡng làm?

log4j.logger.TextProcessor=warn,TextProcessor 

log4j.appender.TextProcessor=org.apache.log4j.RollingFileAppender
log4j.appender.TextProcessor.File=C:/project/logs/TextProcessor.log
log4j.appender.TextProcessor.MaxFileSize=10MB
log4j.appender.TextProcessor.MaxBackupIndex=10
log4j.appender.TextProcessor.Threshold=debug
log4j.appender.TextProcessor.layout=org.apache.log4j.PatternLayout
log4j.appender.TextProcessor.layout.ConversionPattern=[%d] [%5p] (%F:%L) - %m%n

1
Xem thêm Cài đặt sản xuất cho log4j về ảnh hưởng của các mức và ngưỡng đối với khóa và hiệu suất của log4j.
Vadzim

Câu trả lời:


123

Bạn có hai thứ ở đây: một người ghi nhật ký và một người phục vụ. Thật không may, bạn đã chọn cùng một tên cho cả hai, điều này không làm cho nó rõ ràng cho lắm.

Mức tối thiểu của trình ghi nhật ký được đặt để cảnh báo, có nghĩa là mọi thứ bạn ghi bằng trình ghi này không có ít nhất mức cảnh báo sẽ bị bỏ qua.

Khi một thư được trình ghi nhật ký chấp nhận, thư đó sẽ được gửi đến một hoặc một số phần phụ (tới một tệp, tới bảng điều khiển, tới một máy chủ thư, v.v.). Mỗi phần phụ này có thể xác định một ngưỡng. Ví dụ, bạn có thể giới hạn các thông báo trong bảng điều khiển thành lỗi, nhưng chấp nhận các thông báo cảnh báo trong tệp nhật ký.


đối với tôi 'ngưỡng' không thực sự phù hợp. Tôi đã bắt đầu log4j bằng cách sử dụng cấu hình xml và trong phần phụ lục, nó được gọi là 'cấp độ' với nghĩa là ngưỡng. Tôi nghĩ rằng cùng một khái niệm (giới hạn mức độ nghiêm trọng của nhật ký) với hai nhãn khác nhau (nhãn, ngưỡng) khiến nó khó hiểu hơn (Nếu tôi thực sự hiểu nó đúng cho đến nay). Nhưng dù sao tôi cũng không phải là một người nói tiếng Anh bản ngữ.
Dirk Schumacher

33

Ngưỡng là bộ lọc thứ hai cho các tin nhắn được ghi lại

ví dụ:

 log4j.logger.TextProcessor=Debug,TextProcessor , InfoLogger
 .
 .
 .
 log4j.appender.TextProcessor.Threshold=Error

nếu Trình ghi được đặt ở mức GỢI Ý và Ngưỡng ứng dụng được đặt ở Lỗi thì chỉ với Trình xử lý văn bản ứng dụng Thông báo lỗi và mức độ nghiêm trọng cao hơn sẽ được ghi lại.

Sử dụng Threshold là, bạn có thể xác định các appender khác nhau với các mức ngưỡng khác nhau, ví dụ như trong ví dụ đã đề cập ở trên, bạn cũng có thể bật InfoLogger với ghi nhật ký thông báo mức Thông tin

 log4j.logger.TextProcessor=Debug,TextProcessor , InfoLogger
 .
 .
 .
 log4j.appender.InfoLogger.Threshold=INFO

Để hiểu các cấp độ, Có các cấp độ đăng nhập dưới đây trong log4j:

FATAL: shows messages at a FATAL level only  
ERROR: Shows messages classified as ERROR and FATAL  
WARNING: Shows messages classified as WARNING, ERROR, and FATAL  
INFO: Shows messages classified as INFO, WARNING, ERROR, and FATAL  
DEBUG: Shows messages classified as DEBUG, INFO, WARNING, ERROR, and FATAL  
TRACE : Shows messages classified as TRACE,DEBUG, INFO, WARNING, ERROR, and FATAL
ALL : Shows messages classified as TRACE,DEBUG, INFO, WARNING, ERROR, and FATAL 
OFF : No log messages display

truy cập URL để biết thêm chi tiết


25

Mức khai thác gỗ TRACE, DEBUG, INFO, WARN, ERRORFATAL. Bạn sẽ có thể chọn nội dung để đăng nhập ở cấp độ nào trong mã tùy thuộc vào mức độ nghiêm trọng. Ví dụ, bạn sẽ có khả năng đăng nhập và thoát khỏi các phương thức nhưng có thể chọn đăng nhập theo DEBUGcấp độ. Điều này sẽ giúp bạn gỡ lỗi mã vì theo mặc định nó sẽ in ra trên bảng điều khiển (trình ứng dụng bảng điều khiển mặc định được bật). Trong khi bắt đầu sản xuất, bạn có thể tăng ngưỡng ERRORvà ngăn ứng dụng in ra các chi tiết không quá hữu ích trên bảng điều khiển hoặc tệp nhật ký.


13

Cung cấp cho bạn ánh xạ đơn giản từ tệp cấu hình thuộc tính đến luồng thông báo nhật ký. (Tôi đã ẩn một số dòng cấu hình để thu nhỏ)

log4j.rootLogger=ALL, stdout
log4j.logger.com.xyz=INFO, file

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Threshold=DEBUG
...

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.Threshold=WARN
...

lược đồ ghi nhật ký từ cài đặt ở trên

Để hiểu nó là gì, bạn nên biết rằng:

  • Các mức độ ghi nhật ký tăng lên khi truy xuất ở ngoài cùng bên trái: TRACE, GỠ LỖI, THÔNG TIN, CẢNH BÁO, LỖI và MỠ BỤNG
  • Ghi nhật ký mức tối thiểu mà trình ghi nhật ký chấp nhận từ ứng dụng.
  • Ghi nhật ký cấp độ tối thiểu trên appender quyết định những gì sẽ được viết

** Có một số điều phức tạp hơn về tính kế thừa và tính cộng hưởng, nhưng bạn nên bắt đầu từ những điều cơ bản và đơn giản trước.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.