2009-08-31 20 views
11

Necesito anexar el contenido de log4j a un componente Swing (JTextArea o similar). ¿Hay una manera común de hacer esto?Log4J Swing Appender

Respuesta

10

En lugar de introducir una biblioteca externa, terminé de editar el archivo log4j.properties para incluir lo siguiente:

log4j.rootCategory=DEBUG, app 
log4j.appender.app=path.to.class.extending.WriterAppender 

Entonces utilizaron un patrón de observador para publicar los datos en JTextArea de mi interfaz gráfica de usuario.

+0

¿Solo sobrescribió el método WriterAppender.append()? – guerda

+0

por favor publique su código; Estoy atascado con este problema –

7

Gracias a Google, obviamente descubrí el Log4j-Swing-Appender.

+0

Log4J oscilación appender funciona muy bien para mí también. Mantiene la barra de desplazamiento en la parte inferior (sin saltos), y si el usuario se desplaza hacia atrás, permite que el usuario vea sin mover la barra de desplazamiento. Si el usuario mueve nuevamente la barra de desplazamiento al botón, comienza a desplazarse automáticamente de nuevo, ¡excelente! – xorcus

3

para hacer el JScrollPane envolver el componente de destino (por ejemplo JTextArea) desplazarse automáticamente hacia abajo para mostrar las últimas entradas del registro, considere llamar:

org.apache.log4j.lf5.viewer.LF5SwingUtils.makeVerticalScrollBarTrack(scrollPane); 
+0

¡Gracias! Fue muy útil para mí. –

Cuestiones relacionadas