2009-08-31 7 views
11

J'ai besoin d'ajouter du contenu log4j à un composant Swing (JTextArea ou similaire). Existe-t-il un moyen commun de le faire?Log4J Swing Appender

Répondre

10

Au lieu d'introduire une bibliothèque externe, j'ai fini par éditer le fichier log4j.properties inclure les éléments suivants:

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

J'employé un modèle d'observateur pour afficher les données dans JTextArea de mon interface graphique.

+0

Avez-vous seulement écrasé la méthode WriterAppender.append()? – guerda

+0

s'il vous plaît poster votre code; Je suis coincé avec ce problème –

7

Grâce à Google, j'ai évidemment découvert le Log4j-Swing-Appender.

+0

Log4j appender swing fonctionne très bien pour moi aussi. Il garde bien la barre de défilement en bas (pas de saut), et si l'utilisateur revient en arrière, il permet à l'utilisateur de voir sans déplacer la barre de défilement. Si l'utilisateur déplace de nouveau la barre de défilement sur le bouton, il recommence à défiler automatiquement - super! – xorcus

3

pour faire le JScrollPane enveloppant le composant cible (par exemple JTextArea) faire défiler automatiquement pour afficher les dernières entrées du journal, envisagez d'appeler:

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

Merci! C'était très utile pour moi. –