rendered paste bodypackage metrol.logging;
import java.text.*;
import java.util.Date;
import java.util.logging.*;
public class LogFormatter
extends XMLFormatter
{
public String format(LogRecord record)
{
StringBuffer sBuf = new StringBuffer();
sBuf.append("<record>");
SimpleDateFormat dateFrmt = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss z");
sBuf.append("<date>" + dateFrmt.format(new Date(record.getMillis())) + "</date>");
sBuf.append("<sequence>" + record.getSequenceNumber() + "</sequence>");
sBuf.append("<logger>" + record.getLoggerName() + "</logger>");
sBuf.append("<level>" + record.getLevel() + "</level>");
sBuf.append("<class>" + record.getSourceClassName() + "</class>");
sBuf.append("<method>" + record.getSourceMethodName() + "</method>");
sBuf.append("<thread>" + record.getThreadID() + "</thread>");
sBuf.append("<message>" + record.getMessage() + "</message>");
if(record.getThrown() != null)
{
Throwable throwable = record.getThrown();
sBuf.append("<stackTrace message=\"" + throwable.getMessage() + "\">");
StackTraceElement[] stackTrace = throwable.getStackTrace();
for (StackTraceElement stElement : stackTrace)
{
sBuf.append("<stackTraceElement>");
sBuf.append("<class>" + stElement.getClassName() + "</class>");
sBuf.append("<file>" + stElement.getFileName() + "</file>");
sBuf.append("<line>" + stElement.getLineNumber() + "</line>");
sBuf.append("<method>" + stElement.getMethodName() + "</method>");
sBuf.append("</stackTraceElement>");
}
sBuf.append("</stackTrace>");
}
sBuf.append("</record>");
return sBuf.toString();
}
}