All pastes #18938 Raw Edit

Stuff

public text v1 · immutable
#18938 ·published 2005-07-31 15:33 UTC
rendered paste body
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<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();
	}
}