package com.cloudera.flume.handlers.text.output;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Date;
import org.apache.commons.lang.StringEscapeUtils;
import com.cloudera.flume.core.Event;
import com.cloudera.flume.handlers.text.FormatFactory.OutputFormatBuilder;
import com.cloudera.util.DateUtils;
import com.google.common.base.Preconditions;
private static final String NAME = "log4j";
private String
format(Event e) {
Date d = new Date(e.getTimestamp());
String data = String.format("%s %s %s: %s\n", DateUtils.asISO8601(d),
e.getPriority(), "log4j", StringEscapeUtils.escapeJava(new String(e
.getBody())));
return data;
}
@Override
public void format(OutputStream o, Event e)
throws IOException {
o.write(format(e).getBytes());
}
public static OutputFormatBuilder
builder() {
return new OutputFormatBuilder() {
@Override
public OutputFormat
build(String... args) {
Preconditions.checkArgument(args.length <= 0, "usage: hadooplog4j");
OutputFormat format = new Log4jOutputFormat();
format.setBuilder(this);
return format;
}
@Override
return NAME;
}
};
}
}