Package org.zeroturnaround.exec.stream
Class LogOutputStream
java.lang.Object
java.io.OutputStream
org.zeroturnaround.exec.stream.LogOutputStream
- All Implemented Interfaces:
Closeable,Flushable,AutoCloseable
- Direct Known Subclasses:
Slf4jOutputStream
Base class to connect a logging system to the output and/or
error stream of then external process. The implementation
parses the incoming data to construct a line and passes
the complete line to an user-defined implementation.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Writes all remaining data from the buffer.static LogOutputStreamcreate(LineConsumer consumer) Factory method to create aLogOutputStreamthat passes each line to the specified consumer.voidflush()Flush this log stream.protected voidConverts the buffer to a string and sends it toprocessLine.protected abstract voidprocessLine(String line) Logs a line to the log system of the user.setOutputCharset(String outputCharset) voidwrite(byte[] b, int off, int len) Write a block of characters to the output streamvoidwrite(int cc) Write the data to the buffer and flush the buffer, if a line separator is detected.Methods inherited from class java.io.OutputStream
nullOutputStream, write
-
Constructor Details
-
LogOutputStream
public LogOutputStream()
-
-
Method Details
-
setOutputCharset
-
write
Write the data to the buffer and flush the buffer, if a line separator is detected.- Specified by:
writein classOutputStream- Parameters:
cc- data to log (byte).- Throws:
IOException- See Also:
-
flush
public void flush()Flush this log stream.- Specified by:
flushin interfaceFlushable- Overrides:
flushin classOutputStream- See Also:
-
close
Writes all remaining data from the buffer.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classOutputStream- Throws:
IOException- See Also:
-
write
Write a block of characters to the output stream- Overrides:
writein classOutputStream- Parameters:
b- the array containing the dataoff- the offset into the array where data startslen- the length of block- Throws:
IOException- if the data cannot be written into the stream.- See Also:
-
processBuffer
protected void processBuffer()Converts the buffer to a string and sends it toprocessLine. -
processLine
Logs a line to the log system of the user.- Parameters:
line- the line to log.
-
create
Factory method to create aLogOutputStreamthat passes each line to the specified consumer.Mostly useful with Java 8+, so the consumer can be passed as a lambda expression.
- Parameters:
consumer- the consumer to consume the log lines- Returns:
- the created
LogOutputStream, passing each line to the specified consumer.
-