2012-06-25 13 views
5

Esto es similar a this question, which is about a bash file.¿Cómo continuar el inicio de sesión en la misma línea en Java?

Hemos creado un registro que da salida a la consola mientras nos estamos quedando nuestras pruebas TestNG:

private Log log = LogFactory.getLog(xyz.class); 

Más tarde, durante las pruebas, el registro está lleno de detalles para hacernos saber qué es exactamente lo se está haciendo:

log.info("Setting browser..."); 
this.browser = browser; 
log.info("Completed."); 

ahora mismo está imprimiendo como era de esperar:

Setting browser... 
Completed. 

Me gustaría tener esta impresión a cabo en la misma línea:

Setting browser... 

y unos pocos milisegundos posteriores:

Setting browser...Completed. 

es esto posible con el LogFactory?

+0

¿Cómo podría la gente responder esto cuando no les haya dicho qué marco de registro está utilizando? –

+0

@oxbow_lakes Parece que está usando uno de Apache. –

+0

En nuestras Dependencias de Maven, estoy viendo Log4J, pero cuando presiono F3 me lleva al registro común, así que estoy pensando que @ColinD es correcto. – rishimaharaj

Respuesta

5

Sin saber exactamente qué biblioteca tala que está utilizando, yo supongo que la respuesta no es casi seguro que menos que desea especificar explícitamente un carácter de nueva línea en todas partes.

Las estructuras java.util.logging (y Log4J) le permiten agregar formateadores para formatear sus instrucciones. Debería especificar un formato que no termine con un carácter de nueva línea. Por ejemplo, en Log4J. que dan un patrón de ejemplo como

%-5p [%t]: %m%n 

Así que si ha quitado todo excepto la %m (el %n es la nueva línea y las otras cosas incluye el tiempo y el nivel de registro; %t y %p respectivamente, creo), las nuevas líneas no se agregarán automáticamente a cada declaración.

Sin embargo, esto significa que en cualquier otro lugar, sus otras declaraciones de registro tendrían que tener este aspecto:

log.info("I want this on one line\n"); 
+0

¿Por qué se ha bajado esta respuesta? Es, eh, ¡correcto! –

+0

No sé por qué fue downvoted, pero * sería * volcar el tiempo, hilo, etc.para cada mensaje sin la nueva línea en la misma línea, haciéndolo ilegible y rompiendo las herramientas de análisis de registro. –

+0

Ah, buen punto; editado Apenas se merecía un voto negativo, aunque –

2

Deja el registro solo. Si lo quieres más legible, post-proceso.

Alterar el archivo de registro perderá información a menos que tenga cuidado. Mire las marcas de tiempo como un ejemplo. Si su declaración de registro Setting browswer.. tiene una marca de tiempo incluida, poner la instrucción completed sin su marca de tiempo es una pérdida de información y tener dos marcas de tiempo en la misma línea no parece natural.

Cuestiones relacionadas