rendered paste bodypackage 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<record>\n");
SimpleDateFormat dateFrmt = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss z");
sBuf.append("\t\t<date>" + dateFrmt.format(new Date(record.getMillis())) + "</date>\n");
sBuf.append("\t\t<sequence>" + record.getSequenceNumber() + "</sequence>\n");
sBuf.append("\t\t<logger>" + record.getLoggerName() + "</logger>\n");
sBuf.append("\t\t<level>" + record.getLevel() + "</level>\n");
sBuf.append("\t\t<class>" + record.getSourceClassName() + "</class>\n");
sBuf.append("\t\t<method>" + record.getSourceMethodName() + "</method>\n");
sBuf.append("\t\t<thread>" + record.getThreadID() + "</thread>\n");
sBuf.append("\t\t<message>" + record.getMessage() + "</message>\n");
if(record.getThrown() != null)
{
Throwable throwable = record.getThrown();
sBuf.append("\t\t<stackTrace message=\"" + throwable.getMessage() + "\">\n");
StackTraceElement[] stackTrace = throwable.getStackTrace();
for (StackTraceElement stElement : stackTrace)
{
sBuf.append("\t\t\t<stackTraceElement>\n");
sBuf.append("\t\t\t\t<class>" + stElement.getClassName() + "</class>\n");
sBuf.append("\t\t\t\t<file>" + stElement.getFileName() + "</file>\n");
sBuf.append("\t\t\t\t<line>" + stElement.getLineNumber() + "</line>\n");
sBuf.append("\t\t\t\t<method>" + stElement.getMethodName() + "</method>\n");
sBuf.append("\t\t\t</stackTraceElement>\n");
}
sBuf.append("\t\t</stackTrace>\n");
}
sBuf.append("\t</record>\n");
return sBuf.toString();
}
}