package de.lessvoid.nifty.examples; import java.io.InputStream; import java.io.PrintWriter; import java.io.StringWriter; import java.io.Writer; import java.util.logging.LogManager; import java.util.logging.LogRecord; import javax.annotation.Nonnull; public class LoggerShortFormat extends java.util.logging.Formatter { @Override @Nonnull public String format(@Nonnull final LogRecord record) { return record.getMillis() + " " + record.getLevel() + " [" + record.getSourceClassName() + "] " + record.getMessage() + (record.getThrown() != null ? " Stack trace:\n" + getStackTrace(record.getThrown()) : "") + "\n"; } public static void intialize() throws Exception { InputStream input = null; try { input = LoggerShortFormat.class.getClassLoader().getResourceAsStream("logging.properties"); LogManager.getLogManager().readConfiguration(input); } finally { if (input != null) { input.close(); } } } // Internal implementations private String getStackTrace(@Nonnull final Throwable throwable) { Writer stringWriter = new StringWriter(); PrintWriter printWriter = new PrintWriter(stringWriter); throwable.printStackTrace(printWriter); return stringWriter.toString(); } }