package freenet.support;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import freenet.support.Logger.LogLevel;
public class OutputStreamLogger extends OutputStream {
final LogLevel prio;
final String prefix;
final String charset;
public OutputStreamLogger(LogLevel prio, String prefix, String charset) {
this.prio = prio;
this.prefix = prefix;
this.charset = charset;
}
@Override
public void write(int b) {
Logger.logStatic(this, prefix+(char)b, prio);
}
@Override
public void write(byte[] buf, int offset, int length) {
try {
// FIXME use Charset/CharsetDecoder
Logger.logStatic(this, prefix+new String(buf, offset, length, charset), prio);
} catch (UnsupportedEncodingException e) {
// Impossible. Nothing we can do safely here. :(
}
}
@Override
public void write(byte[] buf) {
write(buf, 0, buf.length);
}
}