OneLineFormatter.java
package org.wattdepot.common.util.logger;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.logging.Formatter;
import java.util.logging.LogRecord;
/**
* Provides a one line formatter for use with WattDepot logging. Supports optional date stamp prefix
* and optional appending of a newline. Portions of this code are adapted from
* http://hackystat-utilities.googlecode.com/
*
* @author Philip Johnson
* @author Robert Brewer
*/
public class OneLineFormatter extends Formatter {
/** Whether or not to include the date stamp in the format string. */
private boolean enableDateStamp = true;
/** Whether or not to add a newline. */
private boolean enableNewline = true;
/**
* Default constructor that enables the date stamp and new line.
*/
public OneLineFormatter() {
this(true, true);
}
/**
* One line format string with optional date stamp. Always adds a newline.
*
* @param enableDateStamp If true, a date stamp is inserted.
*/
public OneLineFormatter(boolean enableDateStamp) {
this(enableDateStamp, true);
}
/**
* One line format string with optional date stamp and optional newline.
*
* @param enableDateStamp If true, a date stamp is inserted.
* @param enableNewline If true, a newline is always inserted.
*/
public OneLineFormatter(boolean enableDateStamp, boolean enableNewline) {
this.enableDateStamp = enableDateStamp;
this.enableNewline = enableNewline;
}
/**
* Formats the passed log string as a single line. Prefixes the log string with a date stamp if
* enabled, and adds a newline if enabled.
*
* @param record A log record.
* @return The message string.
*/
@Override
public String format(LogRecord record) {
StringBuffer buff = new StringBuffer();
if (this.enableDateStamp) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss", Locale.US);
buff.append(dateFormat.format(new Date()));
buff.append(" ");
}
buff.append(record.getMessage());
if (this.enableNewline) {
buff.append(System.getProperty("line.separator"));
}
return buff.toString();
}
}