2012-08-07 18 views
5

En java, puede usar System.out.println() para imprimir una línea en blanco, pero ¿cómo funciona con log4j en un archivo de registro? Allí también quiero tener una o más líneas en blanco dentro del archivo de registro.Log4J imprime la línea vacía en el archivo de registro

ya he leído los siguientes aparatos: log4j how to append blank line

Pero esto no es muy útil, ya que con

logger.debug("\n"); 
logger.debug(""); 

no imprimir un mensaje, pero otra información como la hora y así sucesivamente (el diseño de la registrador) todavía se almacenan dentro del archivo de registro. Pero solo quiero tener una línea vacía total. ¿Alguien me puede ayudar, por favor?

Respuesta

8

Log4j no está diseñado para escribir líneas en blanco.

No puede encontrar esta opción en el registrador, porque el registrador es independiente de sus apéndices que escriben en un archivo o la consola o algo diferente.

Creo que necesita crear su FileAppender personalizado que comprueba el mensaje de registro antes de la escritura. Si su message.equals("\n"); agrega una línea en blanco sin el diseño, acceda al archivo por su cuenta y omita el registro normal con el diseño. luego puede usar Logger.debug("\n");

También es una mala práctica agregar líneas en blanco. Es similar a dividir su mensaje de registro en varias líneas. Desea que todos sus mensajes de Logs en una línea cada uno, por lo que son fáciles de analizar para LogViewer-Tools como chainsaw o OtrosLogViewer. Una excepción son StackTraces.

2

Crea tu propio appender con el diseño en blanco y un registrador que use ese appender. Luego, escriba la línea en blanco usando ese registrador. Asegúrese de establecer el atributo de aditividad para el registrador en falso para que el registrador de raíz no escriba el mensaje utilizando el formato de sus apéndices.

Cuestiones relacionadas