package com.feedly.cassandra;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Formatter;
import java.util.logging.LogRecord;
public class FeedlyLogFormatter extends Formatter
{
private final DateFormat format = new SimpleDateFormat("HH:mm:ss");
private static final String lineSep = System.getProperty("line.separator");
@Override
public String format(LogRecord record)
{
String loggerName = record.getLoggerName();
if(loggerName == null) {
loggerName = "root";
}
String dateStr = null;
synchronized (format)
{
dateStr = format.format(new Date(record.getMillis()));
}
StringBuilder output = new StringBuilder()
.append(record.getSourceClassName().replace("com.devhd.feedly.", ""))
.append(".")
.append(record.getSourceMethodName())
.append("[")
.append(record.getLevel()).append('|')
.append(Thread.currentThread().getName()).append('|')
.append(dateStr)
.append("]: ")
.append(record.getMessage()).append(' ')
.append(lineSep);
if(record.getThrown() != null)
{
StringWriter sw = new StringWriter();
record.getThrown().printStackTrace(new PrintWriter(sw));
output.append(sw.getBuffer());
}
return output.toString();
}
}