2009-08-31 114 views
11

我需要将log4j内容附加到Swing组件(JTextArea或类似的)。有没有一种常见的方法来做到这一点?Log4J Swing Appender

回答

10

而是引入外部库的,我结束了编辑log4j.properties文件包括以下内容:

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

然后我采用的观察者模式把数据上传到我的GUI的JTextArea中。

+0

你只覆盖WriterAppender.append()方法吗? – guerda

+0

请发布您的代码;我遇到了这个问题 –

7

感谢Google,我明显发现了Log4j-Swing-Appender

+0

Log4j的摆动的appender的伟大工程,为我好。它很好地保持滚动条在底部(不跳跃),并且如果用户向后滚动,它可以让用户查看而不用移动滚动条。如果用户再次将滚动条移动到按钮,它会再次开始自动滚动 - 非常棒! – xorcus

3

使JScrollPane的包装目标组件(例如JTextArea中)会自动向下滚动显示最新的日志条目,考虑调用:

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

谢谢!这对我来说是非常有用的。 –