Một Cách tốt nhất là sử dụng khuôn khổ java.util.logging
Sau đó, bạn có thể đăng nhập thông điệp trong một trong những định dạng
log.warning("..");
log.fine("..");
log.finer("..");
log.finest("..");
Hoặc
log.log(Level.WARNING, "blah blah blah", e);
Sau đó, bạn có thể sử dụng một logging.properties (ví dụ dưới đây) để chuyển đổi giữa các mức ghi nhật ký và thực hiện tất cả các loại công cụ thông minh như đăng nhập vào các tệp, với xoay vòng, v.v.
handlers = java.util.logging.ConsoleHandler
.level = WARNING
java.util.logging.ConsoleHandler.level = ALL
com.example.blah = FINE
com.example.testcomponents = FINEST
Các khung như log4j và các thứ khác nên tránh theo ý kiến của tôi, Java có mọi thứ bạn cần.
EDIT
này có thể áp dụng như một thực tế chung của bất kỳ ngôn ngữ lập trình. Việc có thể kiểm soát tất cả các mức ghi nhật ký từ một tệp thuộc tính duy nhất thường rất quan trọng trong các ứng dụng doanh nghiệp.
Các tính năng này thường có các tính năng nâng cao như tự động đăng nhập nguồn và lọc theo vị trí cấp OR. Điều này làm cho việc gỡ lỗi dễ dàng hơn nhiều. Sử dụng một trong số này! (cũng kiểm tra Chainsaw) –