package org.fanhongtao.log;
import java.io.StringWriter;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
import org.apache.log4j.WriterAppender;
import org.apache.log4j.spi.LoggingEvent;
/**
* @author Fan Hongtao
* @created 2010-10-31
*/
public class JTextAreaAppender extends WriterAppender
{
private JTextArea textArea;
private StringWriter sw;
public JTextAreaAppender(JTextArea textArea)
{
this.textArea = textArea;
sw = new StringWriter(1024);
setWriter(sw);
}
@Override
public void append(LoggingEvent event)
{
sw.getBuffer().setLength(0);
super.append(event);
final String message = sw.toString();
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
textArea.append(message);
}
});
}
}