2011-02-10 23 views
7

Tôi làm việc trên ứng dụng giao dịch có độ trễ thấp. Chúng tôi muốn tăng số lượng đăng nhập lof4j mà chúng tôi ghi vào tệp, đồng thời giảm thiểu tác động đến thời gian xử lý từ đầu đến cuối của chúng tôi.Làm thế nào để sử dụng FileAppenders của log4j không đồng bộ?

Cách được khuyến nghị để thực hiện việc này là gì? Tôi nghĩ FileAppender.append là đồng bộ, vì vậy chúng tôi cần phải làm điều gì đó thông minh hơn một chút ....

+1

"bạn nghĩ"? Bạn đã xác minh rằng đó thực sự là một nút cổ chai? Điều đó phải dễ dàng, đủ để làm. –

+2

Gợi ý: kiểm tra [JavaDoc] (http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/FileAppender.html#getBufferedIO()) cho tùy chọn 'BufferedIO'. –

Trả lời

3

Nếu bạn cần đăng nhập từ ứng dụng đa luồng slf4j và thực hiện nó logback là lựa chọn tốt hơn nhiều.

+0

là cờ "thận trọng" cho phép bạn nói như vậy? –

3

nhớ rằng AsyncAppender thêm một thread mỗi appender & rằng việc tăng số lượng đăng nhập bạn làm có thể có nghĩa là một sự gia tăng đáng kể về số lượng chuỗi concatentation xảy ra mà thường có nghĩa là một số lượng đáng kể của chuỗi xử lý/munging/định dạng mà có thể khá đắt tiền (tương đối so với độ trễ liên quan trong một ứng dụng giao dịch độ trễ thấp anyway).

Các vấn đề liên quan