Tôi nghĩ rằng thành ngữ phổ biến để tạo các trường hợp java.util.logging.Logger
là thế này:Làm cách nào để tránh lặp lại chính mình khi tạo trình ghi nhật ký?
public class SomeClassName {
private static final Logger LOG = Logger.getLogger(SomeClassName.class.getName());
}
IDE của tôi sẽ quản lý thay đổi dòng một cách thích hợp khi tôi Refactor mã của tôi (thay đổi tên của lớp, ví dụ). Nó vẫn còn lỗi với tôi rằng tôi phải lặp lại tên của lớp học, mặc dù. Những gì tôi thực sự muốn làm là một cái gì đó như Logger.getLogger(getName())
hoặc Logger.getLogger(class.getName())
, nhưng điều này không phải là hợp pháp Java trong một initilization tĩnh.
Có cách nào tốt hơn để nhận được nhật ký không liên quan đến việc lặp lại bản thân không?
'Logger logger = new logger.getLogger' - Tôi sẽ lo lắng hơn về logpocalypse sắp xảy ra! –
FYI, xem giải thích trong [FAQ sl4j] (http://www.slf4j.org/faq.html#declaration_pattern), khung công tác khác nhau nhưng có thể là lý do tương tự. – assylias
Cảm ơn, @assylias! Câu hỏi thường gặp đó giải quyết mối quan tâm cụ thể của tôi rất rõ ràng. Cụ thể là "thành ngữ khai báo logger ở trên không có khả năng chống cắt và dán giữa các lớp." Tuy nhiên, nó không cung cấp một giải pháp. –