package com.griddynamics.jagger.storage.fs.logging; import com.caucho.hessian.io.Hessian2Output; import com.griddynamics.jagger.storage.FileStorage; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; import java.io.OutputStream; public class HessianBufferedLogWriter extends BufferedLogWriter { private final Logger log = LoggerFactory.getLogger(HessianBufferedLogWriter.class); public HessianBufferedLogWriter(int flushSize, int bufferSize, FileStorage fileStorage) { super(flushSize, bufferSize, fileStorage); } private static class HessianLogWriterOutput implements LogWriterOutput { private final Hessian2Output out; private HessianLogWriterOutput(OutputStream out) throws IOException { this.out = new Hessian2Output(out); this.out.setCloseStreamOnClose(true); } @Override public void writeObject(Object object) throws IOException { out.writeObject(object); } @Override public void close() throws IOException { out.close(); } } @Override public LogWriterOutput getOutput(OutputStream out) throws IOException { return new HessianLogWriterOutput(out); } }