Class LogOutputStream

java.lang.Object
java.io.OutputStream
org.apache.commons.exec.LogOutputStream
All Implemented Interfaces:
Closeable, Flushable, AutoCloseable

public abstract class LogOutputStream extends OutputStream
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.
Version:
$Id: LogOutputStream.java 1636056 2014-11-01 21:12:52Z ggregory $
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final ByteArrayOutputStream
    the internal buffer
    private static final int
    Carriage return
    private static final int
    Initial buffer size.
    private final int
     
    private static final int
    Linefeed
    private boolean
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a new instance of this class.
    LogOutputStream(int level)
    Creates a new instance of this class.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Writes all remaining data from the buffer.
    void
    Flush this log stream.
    int
     
    protected void
    Converts the buffer to a string and sends it to processLine.
    protected void
    Logs a line to the log system of the user.
    protected abstract void
    processLine(String line, int logLevel)
    Logs a line to the log system of the user.
    void
    write(byte[] b, int off, int len)
    Write a block of characters to the output stream
    void
    write(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

    write

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • LogOutputStream

      public LogOutputStream()
      Creates a new instance of this class. Uses the default level of 999.
    • LogOutputStream

      public LogOutputStream(int level)
      Creates a new instance of this class.
      Parameters:
      level - loglevel used to log data written to this stream.
  • Method Details

    • write

      public void write(int cc) throws IOException
      Write the data to the buffer and flush the buffer, if a line separator is detected.
      Specified by:
      write in class OutputStream
      Parameters:
      cc - data to log (byte).
      Throws:
      IOException
      See Also:
    • flush

      public void flush()
      Flush this log stream.
      Specified by:
      flush in interface Flushable
      Overrides:
      flush in class OutputStream
      See Also:
    • close

      public void close() throws IOException
      Writes all remaining data from the buffer.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Overrides:
      close in class OutputStream
      Throws:
      IOException
      See Also:
    • getMessageLevel

      public int getMessageLevel()
      Returns:
      the trace level of the log system
    • write

      public void write(byte[] b, int off, int len) throws IOException
      Write a block of characters to the output stream
      Overrides:
      write in class OutputStream
      Parameters:
      b - the array containing the data
      off - the offset into the array where data starts
      len - 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 to processLine.
    • processLine

      protected void processLine(String line)
      Logs a line to the log system of the user.
      Parameters:
      line - the line to log.
    • processLine

      protected abstract void processLine(String line, int logLevel)
      Logs a line to the log system of the user.
      Parameters:
      line - the line to log.
      logLevel - the log level to use