package metrol.logging; import java.util.Date; import java.text.SimpleDateFormat; import java.util.logging.LogRecord; import java.util.logging.XMLFormatter; public class LogFormatter extends XMLFormatter { public String format(LogRecord record) { StringBuffer sBuf = new StringBuffer(); sBuf.append("\t\n"); SimpleDateFormat dateFrmt = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss z"); sBuf.append("\t\t" + dateFrmt.format(new Date(record.getMillis())) + "\n"); sBuf.append("\t\t" + record.getSequenceNumber() + "\n"); sBuf.append("\t\t" + record.getLoggerName() + "\n"); sBuf.append("\t\t" + record.getLevel() + "\n"); sBuf.append("\t\t" + record.getSourceClassName() + "\n"); sBuf.append("\t\t" + record.getSourceMethodName() + "\n"); sBuf.append("\t\t" + record.getThreadID() + "\n"); sBuf.append("\t\t" + record.getMessage() + "\n"); if(record.getThrown() != null) { Throwable throwable = record.getThrown(); sBuf.append("\t\t\n"); StackTraceElement[] stackTrace = throwable.getStackTrace(); for (StackTraceElement stElement : stackTrace) { sBuf.append("\t\t\t\n"); sBuf.append("\t\t\t\t" + stElement.getClassName() + "\n"); sBuf.append("\t\t\t\t" + stElement.getFileName() + "\n"); sBuf.append("\t\t\t\t" + stElement.getLineNumber() + "\n"); sBuf.append("\t\t\t\t" + stElement.getMethodName() + "\n"); sBuf.append("\t\t\t\n"); } sBuf.append("\t\t\n"); } sBuf.append("\t\n"); return sBuf.toString(); } }