org.apache.avalon.framework.logger
Class LoggerAwareOutputStream

java.lang.Object
  extended byjava.io.OutputStream
      extended byorg.apache.avalon.framework.logger.LoggerAwareOutputStream

public abstract class LoggerAwareOutputStream
extends java.io.OutputStream

Logger aware output stream, characters written to this 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 );
         }
     }
 } );
 

Since:
Nov 19, 2004 7:03:50 PM
Version:
$Revision:$
Author:
Marcus Crafter

Field Summary
protected  Logger m_logger
          Logger reference
 
Constructor Summary
LoggerAwareOutputStream(Logger logger)
          Constructor, creates instance of class.
 
Method Summary
 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.
 
Methods inherited from class java.io.OutputStream
write, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_logger

protected final Logger m_logger
Logger reference

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.

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

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.

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


Copyright © 1997-2005 The Apache Software Foundation. All Rights Reserved.