--- /dev/null
+package jalview.gui;
+
+import javax.swing.JTextArea;
+import javax.swing.SwingUtilities;
+
+import org.apache.log4j.WriterAppender;
+import org.apache.log4j.spi.LoggingEvent;
+
+/**
+ * From http://textareaappender.zcage.com/
+ * the means to capture the logs, too.
+ * Simple example of creating a Log4j appender that will
+ * write to a JTextArea.
+ */
+public class JalviewAppender extends WriterAppender {
+
+ static private JTextArea jTextArea = null;
+
+ /** Set the target JTextArea for the logging information to appear. */
+ static public void setTextArea(JTextArea jTextArea) {
+ JalviewAppender.jTextArea = jTextArea;
+ }
+ /**
+ * Format and then append the loggingEvent to the stored
+ * JTextArea.
+ */
+ public void append(LoggingEvent loggingEvent) {
+ final String message = this.layout.format(loggingEvent);
+
+ // Append formatted message to textarea using the Swing Thread.
+ SwingUtilities.invokeLater(new Runnable() {
+ public void run() {
+ if (jTextArea!=null) {
+ jTextArea.append(message);
+ }
+ }
+ });
+ }
+}
\ No newline at end of file