2011-10-27 9 views
10

estoy usando el registrador por defecto de Java, y en este momento es la impresión de una gran cantidad de basura inútil la salida, aquí es un ejemplo, esta línea de código:¿Cómo suprimo la línea de fecha del resultado de 2 líneas java.util.logging?

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

dará salida a todo esto:

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

No necesito saber nada excepto la segunda línea. ¿Cómo puedo eliminar esta basura? Todo lo que quiero es un simple registro de texto.

+1

FWIW, esa "información inútil" es muy útil en un programa de cualquier tamaño o duración. –

+1

@DaveNewton - Personalmente, soy partidario de iniciar sesión de forma flexible en la consola y de forma exhaustiva en el archivo (con un formateador XML). Así que creo que ambas formas tienen un gran mérito –

+0

Lo sé, es solo un ejemplo irónico. –

Respuesta

3

Necesita create a a different Formatter y úselo en su lugar.

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

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

Estos están pidiendo más o menos la misma pregunta:

Aquí está un ejemplo de cómo poner en práctica la sugerencia de Jarrod Roberson: http://www.javalobby.org/java/forums/t18515.html

En general , para aplicar un formateador crea un archivo, generalmente llamado logging.properties. En él, ponga una línea como esta:

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

o cualquiera que sea su clase de formateador. A continuación, añadir una JVM arg así:

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

O utilizar un motor más potente sistema de registro, como Logback o Log4J, que tienen formateadores prediseñados para ahorrar algo de código.

11

Quizás esto se agregó más tarde, pero al menos con Java 7, java.util.logging.SimpleFormatter permite obtener su formato de una propiedad del sistema. Este argumento JVM se imprimirá sólo la segunda línea:

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

Personalmente, me gusta mantener toda la información de fecha/fuente, pero deshacerse de la nueva línea (y utilizar un formato de fecha más compacto, internacional):

-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

Realmente no tienes idea de cuánto mejor acabas de hacer mi vida. Esto me ahorró al menos 5 horas de trabajo, debido a que no estaba familiarizado con Java. – rlpowell

+0

Miles de pequeños bebés y gatitos y gatitos bebé se han guardado debido a su respuesta aquí hoy. Aprecio agradecido está en orden. – Andrew

Cuestiones relacionadas