2011-10-27 10 views
10

używam domyślnego rejestratora Javy, a teraz to drukując wiele niepotrzebnych śmieci do wyjścia, tutaj jest przykład, ta linia kodu:Jak wyłączyć linię czasu z 2-wierszowego wyjścia java.util.logging?

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

wyświetli wszystko:

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

Nie muszę nic wiedzieć poza tą drugą linią. Jak mogę usunąć ten kosz? Wszystko czego chcę, to proste logowanie tekstu.

+1

FWIW, że "bezużyteczne informacje" są bardzo przydatne w programie o dowolnym rozmiarze lub czasie trwania. –

+1

@DaveNewton - Osobiście jestem fanem logowania się do konsoli i gadania do pliku (z formaterem XML). Myślę więc, że obie formy mają wielką wartość –

+0

Wiem, to tylko przykład ironiczny. –

Odpowiedz

3

Musisz create a a different Formatter i użyć go zamiast tego.

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

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

Są pytaniem prawie to samo pytanie:

Oto przykład jak zaimplementować Jarrod Roberson za sugestię: http://www.javalobby.org/java/forums/t18515.html

W generał , aby zastosować formatator, należy utworzyć plik, zwykle o nazwie logging.properties. W tej linii wpisz:

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

lub dowolna inna klasa formatera. Następnie dodać JVM Arg tak:

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

Albo użyć bardziej wydajny system rejestrowania, jak Logback lub Log4j, które mają skompilowane formatek aby zaoszczędzić trochę kodowania.

11

Może to zostało dodane później, ale przynajmniej z Javą 7, java.util.logging.SimpleFormatter obsługuje pobieranie swojego formatu z właściwości systemowej. Ten JVM argumentem będzie drukować tylko drugą linię:

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

Osobiście lubię trzymać wszystkie informacje data/źródło, ale pozbyć się znaku nowej linii (i użyć bardziej zwartą, międzynarodowy format daty):

-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

Poważnie nie masz pojęcia, o ile lepiej uczyniłeś moje życie. Pozwoliło mi to zaoszczędzić co najmniej 5 godzin pracy z powodu nieznajomości java. – rlpowell

+0

Tysiące małych dzieci i małych kociąt i małych kociąt zostało uratowanych dzięki twojej dzisiejszej odpowiedzi. Wdzięczna wdzięczność jest w porządku. – Andrew

Powiązane problemy