public abstract class LoggerAwareOutputStream
extends java.io.OutputStream
OutputStream
are buffered until a newline character is encountered, or a flush() is called.
Extend to specify the log method that the message should be invoked. eg:
setOutputStream( new LoggerAwareOutputStream( getLogger() ) { protected void logMessage( String message ) { if ( m_logger.isDebugEnabled() ) { m_logger.debug( message ); } } } );
Modifier and Type | Field and Description |
---|---|
private java.io.ByteArrayOutputStream |
bos
Message buffer
|
protected Logger |
m_logger
Logger reference |
Constructor and Description |
---|
LoggerAwareOutputStream(Logger logger)
Constructor, creates instance of class.
|
Modifier and Type | Method and Description |
---|---|
void |
close()
Purposely flushes the stream, but doesn't close anything since the logger
is managed by another class.
|
void |
flush()
Flushes this output stream, writing any buffered content to the log
|
protected abstract void |
logMessage(java.lang.String message)
Writes the message to the log.
|
void |
write(int b)
Writes a byte to the internal buffer.
|
private final java.io.ByteArrayOutputStream bos
protected final Logger m_logger
Logger
referencepublic LoggerAwareOutputStream(Logger logger)
logger
- logger this output stream should usepublic void write(int b) throws java.io.IOException
write
in class java.io.OutputStream
b
- character to writejava.io.IOException
- if an error occursOutputStream.write(int)
public void flush() throws java.io.IOException
flush
in interface java.io.Flushable
flush
in class java.io.OutputStream
java.io.IOException
- on errorOutputStream.flush()
public void close() throws java.io.IOException
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
close
in class java.io.OutputStream
java.io.IOException
- if an IO error occursOutputStream.close()
protected abstract void logMessage(java.lang.String message)
message
- message to be written