Tôi bắt đầu với một Dự án mới và đã thực hiện một số cân nhắc về việc đăng nhập. Tôi luôn luôn sử dụng các mô hình mà mọi tầng lớp, trong đó khai thác gỗ được thực hiện, có Logger tĩnh của riêng mình:Ghi nhật ký Java - Trình bao bọc?
private static final Logger logger = Logger.getLogger(LoggingInterceptor.class);
tôi không thực sự thích cách tiếp cận này như tôi phải sao chép dòng này vào mỗi lớp nơi tôi sẽ đăng một cái gì đó . Tôi đã xem xét sử dụng phương pháp tiếp cận Android, nơi có lớp Log với các phương thức tĩnh để đăng nhập. Tôi bắt đầu tìm kiếm trên internet cho một cách tiếp cận tương tự được thực hiện bởi người khác, nhưng không tìm thấy bất cứ điều gì.
Vì vậy, câu hỏi của tôi là: Điều gì có thể là bất lợi của phương pháp này?
Tôi không thể nghĩ ra bất kỳ lợi ích nào khác, vì nó tuân theo mẫu DRY. Các danh mục khác nhau có thể được xử lý như trong Android với 'thẻ', là các tham số của phương thức Đăng nhập tĩnh. Ví dụ:
Log.debug(tag, message, exception);
Bản thân lớp bản ghi sẽ sử dụng Khung đăng nhập chung như Log4j hoặc thậm chí SLF4J.
Vì vậy, tôi quan tâm đến ý kiến của bạn.
FWIW, Khung chơi 2 sử dụng cách tiếp cận tương tự. – smk
"[...] nó tuân theo mẫu DRY"? Au contraire! Cách tiếp cận được đề xuất của bạn buộc bạn luôn phải chỉ định thẻ, trong khi truy xuất trình ghi nhật ký cho lớp (hoặc danh mục) trong biến cuối cùng tĩnh chỉ định nó một lần. Khi bạn quyết định thay đổi danh mục thì sao? – Seelenvirtuose
Vâng, đó có thể là một điểm. Nhưng nếu bạn đăng nhập một câu lệnh cho một thẻ khác thì sao? Xem xét các thẻ không chỉ được sử dụng để xác định lớp nơi đăng nhập được đặt, nhưng có thể là một hệ thống phụ của hệ thống. Vì vậy, bạn có thể muốn đóng gói một số nhật ký của các hệ thống phụ được thực hiện trên nhiều lớp. – homedom