2009-06-19 18 views
7

Estoy ejecutando algunas pruebas JUnit en Eclipse, y mi código está generando un archivo de registro XML utilizando las API de registro de Java. (java.util.logging). ¿Hay alguna manera fácil de ver esta salida de registro XML en Eclipse, aparte de leer el XML sin formato? Específicamente, quiero poder ver fácilmente de qué subprocesos han salido diferentes mensajes de registro.¿Cómo puedo ver los archivos de registro de Java en Eclipse

Respuesta

0

No veo cómo Eclipse puede conocer sus hilos. Si se trata de XML, debe escribir un analizador que pueda encontrar sus mensajes de hilo mediante XPath e imprimirlos. Pero eso depende de usted: Eclipse no puede leer su mente.

Deberá encontrar una hoja de estilo XSL-T que pueda tomar la secuencia XML producida por log4j y extraer los hilos que desee.

+0

El hilo es parte de la salida java.util.logging. Ver http://java.sun.com/j2se/1.4.2/docs/guide/util/logging/overview.html#2.4 –

1

Siempre esperaba encontrar algo como Apache Chainsaw para la combinación java.util.logging/Eclipse, es decir, un visor de registro en Eclipse que escucha un puerto y una implementación de java.util.logging.Handler escribiendo directamente en él. Pero todavía no he encontrado tal cosa y tampoco escribí ninguna. Hasta ahora solo uso un formato de texto plano adecuado para iniciar sesión en la consola. No es elegante ni tiene opciones de filtrado útiles, pero cumple su función. Escribir su propio formateador personalizado no es nada difícil.

Existe algún soporte para analizar archivos de registro en Eclipse Test and Performance Tools Platform Project (el nombre es aún peor que el acrónimo). Nunca lo intenté, pero podría ser útil para ti.

+0

Peter, mira mi nota en SLF4J/Logback. Hace exactamente esto, aunque Thorbjørn señala que hay un error al usar el lanzamiento actual de logback (Ceki dice que están trabajando en una solución). –

+0

Preferiría algo que no agregue dependencias en mi código de producción. Particularmente SLF4J ya me ha quemado al hacer cambios API incompatibles entre lanzamientos puntuales, causando problemas como dependencias indirectas de uno de mis proyectos basados ​​en Maven. java.util.logging puede no ser perfecto, pero aún no veo una justificación para los costos y riesgos adicionales que introducen las alternativas. –

1

Justo en el lado, una excelente herramienta para visualizar archivos de registro en tiempo real es baretail (esencialmente un tail -f en Windows), pero se puede configurar para resaltar ciertos patrones en color que realmente pueden ayudar. Puede encontrar una versión gratuita here.

+0

gracias por el enlace – akf

1

Dependiendo de exactamente lo que está tratando de hacer, ¿podría necesitar una buena configuración de registro para su subsistema de registro?

Un marco He estado usando recientemente utiliza slf4j para iniciar la sesión, proporcionando la siguiente configuración de log4j consigo ver lo que se rosca de salida:

log4j.rootLogger = trace, default 
log4j.appender.default = org.apache.log4j.ConsoleAppender 
log4j.appender.default.layout = org.apache.log4j.PatternLayout 
log4j.appender.default.layout.ConversionPattern = %-4r [%t] %-5p %c %x - %m%n 

En mi caso puedo obtener un resultado similar al siguiente en la pestaña Consola en eclipse cuando ejecuto mis pruebas junit.

0 [pool-1-thread-1] INFO com.example.BaseTest - Server listening on port 9090 
35 [NioProcessor-6] INFO org.apache.mina.filter.logging.LoggingFilter - CREATED 
35 [NioProcessor-1] INFO org.apache.mina.filter.logging.LoggingFilter - CREATED 
4

He estado usando la API SLF4J registro junto con la implementación Logback registro. SLF4J se puede configurar para asignar mensajes de registro en las API java.util.logging, log4j, jakarta commons y SLF4j en una forma intermedia común. Por otro lado, los mensajes se pueden generar a través de java.util.logging, log4j o Logback. Es un enfoque flexible que funciona bien, especialmente cuando tiene componentes que usan diferentes API de registro.

Una cosa buena de Logback es que puede configurarlo para enviar una copia de los mensajes de registro a un Eclipse plug-in. El complemento y le permite ver y filtrar el archivo de registro de varias maneras. Los mensajes contienen el hilo que los generó, por lo que suena como algo que debería verificar.

+0

el complemento no funciona con la última versión de logback. –

+0

Es cierto, aunque hay trabajos en curso en una versión nueva y mejorada. – Ceki

2

Creo que estabas buscando lo mismo que estaba buscando. Encontré UtilLogger4E, pero comencé mi propio proyecto (EDevTools LogViewer), porque tiene algunas características que faltan y no es de código abierto.

Tiene la capacidad de leer registros XML de Java Util Log desde un archivo o un socket configurable, mostrarlos coloreados por nivel en una tabla y puede mostrar más de un registro a la vez (a través de varias instancias de vista).

Java Util Logging tiene una función integrada para enviar registros a un socket (SocketHandler), solo debe establecerse mediante el archivo de configuración.

Usted puede echar un vistazo a LogViewer en: http://sourceforge.net/projects/edevtools/

2

Si desea utilizar el visor de registro que no está basado en Eclipse, te recomiendo OtrosLogViewer. Puedo importar formato XML java.util.logging y SimpleFormat.

Negación: yo soy el autor de OtrosLogViewer

Cuestiones relacionadas