2010-11-27 27 views
5

Tôi có một chương trình java sử dụng thư viện bên ngoài. Chương trình chính sử dụng log4j để ghi lại các tin nhắn của nó và thư viện sử dụng java.util.logging.Làm thế nào để chuyển hướng java.util.logging vào một tập tin?

Vấn đề của tôi là các thông điệp tường trình từ thư viện bên ngoài và chương trình chính được trộn trong bảng điều khiển.

Tôi muốn chuyển hướng tất cả thông báo tường trình từ thư viện bên ngoài vào tệp. Tôi cố gắng để làm điều đó với một tập tin logging.properties:

handlers= java.util.logging.FileHandler 
.level= INFO 
java.util.logging.FileHandler.pattern = foo.log 
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter 

Tập tin này được khởi tạo với:

System.setProperty("java.util.logging.config.file", "logging.properties"); 

Thật không may, đăng tin nhắn từ thư viện bên ngoài tiếp tục xuất hiện trong giao diện điều khiển. Tôi có nên sử dụng một cái gì đó như slf4j để chặn thông điệp tường trình từ java.util.logging không?

Cảm ơn bạn đã dành thời gian.

+0

trùng lặp của http://stackoverflow.com/questions/751736/how-to-get-java-logger-output-to-file-by-default –

Trả lời

11

Đây là một số mã từ một trong các chương trình của tôi. Điều này cũng xoay tự động. Lớp cấu hình là của riêng tôi đó là đọc từ một tập tin thuộc tính. Bạn chỉ có thể thay thế bằng các giá trị của riêng bạn.

Logger rootLogger = Logger.getLogger(""); 
logHandler = new FileHandler(config.getLogFile(), 
          config.getLogRotateSize()*1024*1024, 
          config.getLogRotateCount(), false); 
logHandler.setFormatter(new SimpleFormatter()); 
logHandler.setLevel(Level.INFO); 
rootLogger.removeHandler(rootLogger.getHandlers()[0]); 
rootLogger.setLevel(Level.INFO); 
rootLogger.addHandler(logHandler); 

Lưu ý đây là chương trình độc lập. Bất kỳ máy chủ ứng dụng nào cũng có các công cụ cấu hình ghi nhật ký riêng. Chương trình cũng có thể thay đổi định dạng và mức độ khi đang di chuyển nếu muốn có chế độ gỡ lỗi động.

+0

Wow cảm ơn bạn, điều này đã làm việc hoàn hảo! – gulbrandr

Các vấn đề liên quan