/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package net.sourceforge.pmd.util.log; import java.io.PrintWriter; import java.io.StringWriter; import java.util.logging.Formatter; import java.util.logging.Handler; import java.util.logging.LogRecord; /** * Log to the console using a basic formatter. * * @author Wouter Zelle */ public class ConsoleLogHandler extends Handler { private static final Formatter FORMATTER = new PmdLogFormatter(); @Override public void publish(LogRecord logRecord) { System.out.println(FORMATTER.format(logRecord)); if (logRecord.getThrown() != null) { // Use the same channel, to make sure that the stacktrace comes // after the message on the console (using printStackTrace // directly messes things up) StringWriter stringWriter = new StringWriter(); PrintWriter printWriter = new PrintWriter(stringWriter, true); logRecord.getThrown().printStackTrace(printWriter); System.out.println(stringWriter.toString()); } } @Override public void close() throws SecurityException { } @Override public void flush() { } }