2012-02-08 25 views
18

Tôi muốn chỉ đơn giản để đăng nhập vào giao diện điều khiển sử dụng java.util.logging:Sử dụng java.util.logging để đăng nhập vào giao diện điều khiển

Logger log = Logger.getLogger("my.logger"); 
log.setLevel(Level.ALL); 
ConsoleHandler handler = new ConsoleHandler(); 
handler.setFormatter(new SimpleFormatter()); 
log.addHandler(handler); 
log.fine("hello world"); 

nhưng điều này in ra gì cả. Tôi đang thiếu gì?

Cảm ơn

Trả lời

22

Rất đơn giản, trình ghi nhật ký có thể có một số trình xử lý, với mỗi cấp độ khác nhau.

handler.setLevel(Level.ALL); 
+2

Trong đó đặt ra câu hỏi: mục đích của Logger.setLevel (chỉ là những gì), nếu nó không đặt các cấp? – user949300

+0

ConsoleHandler khởi động với mức INFO. Các cấp được kết hợp. Ý kiến ​​cá nhân của tôi là API ghi nhật ký không cung cấp _algebra_, một tập hợp hợp lý các hoạt động có thể kết hợp với ngữ nghĩa được xác định rõ. –

+0

Không có đối số ở đây ... – user949300

7

Tôi không phải chuyên gia về java logging, nhưng nếu bạn thay đổi log.fine() để log.info() nó sẽ in. Có một cái gì đó tanh tanh về tiền phạt - trong thực tế, tôi chưa bao giờ sử dụng nó. Hy vọng rằng ai đó biết nhiều hơn có thể trả lời điều đó.

THÊM: Có, tiền phạt là đặc biệt. Tôi tìm thấy một earlier SO answer for this:

4

Logging trên dòng System.out tiêu chuẩn có thể dễ dàng thực hiện bằng cách thêm một handler StreamHandler:

logger.addHandler(new StreamHandler(System.out, new SimpleFormatter())) 
Các vấn đề liên quan