Tôi là người duy trì duy nhất trên một cơ sở mã nơi đăng nhập được thực hiện bằng cách sử dụng đăng nhập Apache commons.Nhật ký không tĩnh có thể được chứng minh không?
Tất cả các lớp chứa hai hàng nhập khẩu sau đây:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Sau đó, rất nhiều lớp chứa không instantiation log tĩnh như thế này:
/** The log. */
private Log log = LogFactory.getLog(Xyz.class);
thể này là hợp lý?
Tôi có thể thay đổi an toàn tất cả những điều này thành cuộc gọi tĩnh không?
CHỈNH SỬA Về các trường hợp đặc biệt có thể (rõ ràng) tiện dụng: câu hỏi của tôi thực sự là nhiều hơn "Nhật ký không tĩnh trên toàn bộ codebase có được biện minh không?"
Sau khi đọc tài liệu đó, nó không phải là rõ ràng với tôi những gì là sai với tuyên bố một lĩnh vực Log như tĩnh ngay cả trong môi trường classloader chia sẻ. Tham số lớp LogFactory.getLog() có thể được thay đổi thành một String (Xyz.class.getName()) cho một điều, và ngoài việc đó, tác hại của logger được truy cập từ các lớp với các trình nạp lớp ngữ cảnh chủ đề khác nhau là gì? Tuy nhiên, phương thức đăng nhập phải an toàn cho luồng và nếu bạn không gặp phải vấn đề lớn hơn. Có ai có thể cung cấp mô tả rõ ràng về những gì có thể xảy ra sai với tham chiếu nhật ký tĩnh không? –
@Dov Wasserman Câu hỏi hay, nhưng phải trung thực với bạn, tôi thậm chí không hiểu được điểm của việc đăng nhập commons. :) – biziclop