package org.fanhongtao.log; import java.awt.Font; import javax.swing.JFrame; import javax.swing.JTextPane; import org.apache.log4j.Logger; import org.apache.log4j.PatternLayout; import org.fanhongtao.swing.BaseFrame; /** * @author Fan Hongtao * @created 2010-11-10 */ public class JTextPaneAppenderTest extends BaseFrame { private static Logger log = Logger.getLogger(JTextPaneAppenderTest.class); private JTextPane logText; // The font to use for displaying log message private Font font; /* (non-Javadoc) * @see org.fanhongtao.swing.BaseFrame#createContents(javax.swing.JFrame) */ @Override protected void createContents(JFrame frame) { frame.setSize(400, 300); // create controller logText = new JTextPane(); frame.add(logText); // set font font = new Font("Courier New", Font.PLAIN, 15); logText.setFont(font); // make it an appender of Log4J JTextPaneAppender appender = new JTextPaneAppender(logText); appender.setLayout(new PatternLayout(LogUtils.DEFAULT_PATTERN_LAYOUT)); Logger.getRootLogger().addAppender(appender); // write some log messages log.info("Write some info message"); log.error("Write some error message"); log.info("Write some info message, too"); } public static void main(String[] args) { new JTextPaneAppenderTest().run("JTextPane Appender Test"); } }