Class LoggerAwareOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- org.apache.avalon.framework.logger.LoggerAwareOutputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.Flushable
,java.lang.AutoCloseable
public abstract class LoggerAwareOutputStream extends java.io.OutputStream
Logger aware output stream, characters written to thisOutputStream
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 ); } } } );
- Since:
- Nov 19, 2004 7:03:50 PM
- Version:
- $Revision:$
-
-
Constructor Summary
Constructors Constructor Description LoggerAwareOutputStream(Logger logger)
Constructor, creates instance of class.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method 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 logprotected abstract void
logMessage(java.lang.String message)
Writes the message to the log.void
write(int b)
Writes a byte to the internal buffer.
-
-
-
Constructor Detail
-
LoggerAwareOutputStream
public LoggerAwareOutputStream(Logger logger)
Constructor, creates instance of class.- Parameters:
logger
- logger this output stream should use
-
-
Method Detail
-
write
public void write(int b) throws java.io.IOException
Writes a byte to the internal buffer. If a newline character is encountered, then the buffer is sent to the logger.- Specified by:
write
in classjava.io.OutputStream
- Parameters:
b
- character to write- Throws:
java.io.IOException
- if an error occurs- See Also:
OutputStream.write(int)
-
flush
public void flush() throws java.io.IOException
Flushes this output stream, writing any buffered content to the log- Specified by:
flush
in interfacejava.io.Flushable
- Overrides:
flush
in classjava.io.OutputStream
- Throws:
java.io.IOException
- on error- See Also:
OutputStream.flush()
-
close
public void close() throws java.io.IOException
Purposely flushes the stream, but doesn't close anything since the logger is managed by another class.- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classjava.io.OutputStream
- Throws:
java.io.IOException
- if an IO error occurs- See Also:
OutputStream.close()
-
logMessage
protected abstract void logMessage(java.lang.String message)
Writes the message to the log. Subclasses should override this method to send the message to the log level they require.- Parameters:
message
- message to be written
-
-