X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Futil%2Flogging%2FLogging.java;h=ef8bb6a5dde14c9743d45862cf1215972843d084;hb=0fb6af2eeecf591148346548855b4834ece81e18;hp=9b25ff30d20a127966c6d8ae0ee2e579874560e6;hpb=1a15797202b29b63a0677041c437bb0dcb559e54;p=jSite2.git diff --git a/src/net/pterodactylus/util/logging/Logging.java b/src/net/pterodactylus/util/logging/Logging.java index 9b25ff3..ef8bb6a 100644 --- a/src/net/pterodactylus/util/logging/Logging.java +++ b/src/net/pterodactylus/util/logging/Logging.java @@ -19,6 +19,8 @@ package net.pterodactylus.util.logging; +import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Date; @@ -82,16 +84,36 @@ public class Logging { consoleHandler.setLevel(Level.ALL); consoleHandler.setFormatter(new Formatter() { private StringBuffer recordBuffer = new StringBuffer(); + private DateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS Z"); /** * {@inheritDoc} */ @Override public synchronized String format(LogRecord record) { recordBuffer.setLength(0); - recordBuffer.append(new Date(record.getMillis())).append(' ').append(record.getLevel().getName()).append(' '); - recordBuffer.append(record.getSourceClassName()).append('.').append(record.getSourceMethodName()).append(' '); - recordBuffer.append(record.getMessage()); - recordBuffer.append("\r\n"); + String linePrefix = dateFormatter.format(new Date(record.getMillis())) + " [" + record.getLevel() + "] [" + Thread.currentThread().getName() + "] [" + record.getSourceClassName() + "." + record.getSourceMethodName() + "] "; + recordBuffer.append(linePrefix).append(record.getMessage()).append('\n'); + if (record.getThrown() != null) { + Throwable throwable = record.getThrown(); + boolean causedBy = false; + while (throwable != null) { + recordBuffer.append(linePrefix); + if (causedBy) { + recordBuffer.append("caused by: "); + } + recordBuffer.append(throwable.getClass().getName()); + if (throwable.getMessage() != null) { + recordBuffer.append(": ").append(throwable.getMessage()); + } + recordBuffer.append("\n"); + StackTraceElement[] stackTraceElements = throwable.getStackTrace(); + for (StackTraceElement stackTraceElement: stackTraceElements) { + recordBuffer.append(linePrefix).append(" at ").append(stackTraceElement.getClassName()).append('.').append(stackTraceElement.getMethodName()).append("(").append(stackTraceElement.getFileName()).append(':').append(stackTraceElement.getLineNumber()).append(')').append("\n"); + } + throwable = throwable.getCause(); + causedBy = true; + } + } return recordBuffer.toString(); } });