2011-10-27 24 views
10

Tôi đang sử dụng logger mặc định Java, và ngay bây giờ nó in rất nhiều thùng rác vô dụng đến đầu ra, đây là một ví dụ, dòng mã này:Làm cách nào để chặn dòng ngày từ đầu ra java.util.logging 2 dòng?

log.info("Logging pointless information...") 

Will đầu ra tất cả điều này:

Oct 26, 2011 9:37:57 PM java.util.logging.LogManager$RootLogger log 
INFO: Logging pointless information... 

Tôi không cần biết bất kỳ điều gì ngoại trừ dòng thứ hai đó. Tôi làm cách nào để xóa thùng rác này? Tất cả những gì tôi muốn là đăng nhập văn bản đơn giản.

+1

FWIW, rằng "thông tin vô ích" rất hữu ích trong một chương trình có bất kỳ kích thước hoặc thời lượng nào. –

+1

@DaveNewton - Cá nhân, tôi là người hâm mộ đăng nhập chặt chẽ để điều khiển và tiết kiệm để gửi tệp (với trình định dạng XML). Vì vậy, tôi nghĩ rằng cả hai hình thức đều có công lớn –

+0

Tôi biết, đó chỉ là một ví dụ mỉa mai. –

Trả lời

3

Bạn cần phải create a a different Formatter và sử dụng nó thay thế.

public class BriefFormatter extends Formatter 
{ 
    public BriefFormatter() { super(); } 

    @Override 
    public String format(final LogRecord record) 
    { 
     return record.getMessage(); 
    } 
} 
2

Đây là những yêu cầu khá nhiều câu hỏi tương tự:

Dưới đây là một ví dụ về làm thế nào để thực hiện đề nghị Jarrod Roberson của: http://www.javalobby.org/java/forums/t18515.html

Trong chung , để áp dụng một trình định dạng bạn tạo một tệp, thường được gọi là logging.properties. Trong đó đặt một dòng như sau:

java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter 

hoặc bất kỳ lớp trình định dạng nào của bạn. Sau đó thêm một JVM arg như thế này:

-Djava.util.logging.config.file=logging.properties 

Hoặc sử dụng một hệ thống đăng nhập mạnh mẽ hơn, như Logback hoặc Log4j, có trình định dạng dựng sẵn để giúp bạn tiết kiệm một số mã hóa.

11

Có thể điều này đã được thêm vào sau, nhưng ít nhất với Java 7, java.util.logging.SimpleFormatter hỗ trợ nhận định dạng của nó từ thuộc tính hệ thống. Lập luận JVM này sẽ in chỉ dòng thứ hai:

-Djava.util.logging.SimpleFormatter.format='%4$s: %5$s%6$s%n' 

Cá nhân, tôi muốn giữ tất cả các thông tin ngày/nguồn, nhưng thoát khỏi những dòng mới (và sử dụng một định dạng ngày nhỏ gọn hơn, quốc tế):

-Djava.util.logging.SimpleFormatter.format='%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s %2$s %5$s%6$s%n' 
+1

Bạn thực sự không có ý tưởng tốt hơn bao nhiêu bạn đã làm cho cuộc sống của tôi. Điều này đã cứu tôi ít nhất 5 giờ làm việc, vì không quen thuộc với java. – rlpowell

+0

Hàng ngàn em bé và mèo con và mèo con nhỏ đã được cứu vì câu trả lời của bạn ở đây hôm nay. Cảm ơn sự đánh giá cao là theo thứ tự. – Andrew

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