package org.ripple.power.txns.btc;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.Writer;
import java.text.MessageFormat;
import java.util.Date;
import java.util.logging.Formatter;
import java.util.logging.Handler;
import java.util.logging.LogRecord;
import java.util.logging.Logger;
public class BriefLogFormatter extends Formatter {
private static final MessageFormat messageFormat = new MessageFormat(
"{3,date,hh:mm:ss} {0} {1}.{2}: {4}\n{5}");
private static final Logger logger = Logger.getLogger("");
public static void init() {
Handler[] handlers = logger.getHandlers();
for (Handler handler : handlers) {
handler.setFormatter(new BriefLogFormatter());
}
}
@Override
public String format(LogRecord logRecord) {
Object[] arguments = new Object[6];
arguments[0] = logRecord.getLevel().getName();
String fullClassName = logRecord.getSourceClassName();
int lastDot = fullClassName.lastIndexOf('.');
String className = fullClassName.substring(lastDot + 1);
arguments[1] = className;
arguments[2] = logRecord.getSourceMethodName();
arguments[3] = new Date(logRecord.getMillis());
arguments[4] = logRecord.getMessage();
if (logRecord.getThrown() != null) {
Writer result = new StringWriter();
logRecord.getThrown().printStackTrace(new PrintWriter(result));
arguments[5] = result.toString();
} else {
arguments[5] = "";
}
return messageFormat.format(arguments);
}
}