Package ch.qos.logback.core
Class OutputStreamAppender<E>
- java.lang.Object
-
- ch.qos.logback.core.spi.ContextAwareBase
-
- ch.qos.logback.core.UnsynchronizedAppenderBase<E>
-
- ch.qos.logback.core.OutputStreamAppender<E>
-
- All Implemented Interfaces:
Appender<E>,ContextAware,FilterAttachable<E>,LifeCycle
- Direct Known Subclasses:
ConsoleAppender,FileAppender
public class OutputStreamAppender<E> extends UnsynchronizedAppenderBase<E>
OutputStreamAppender appends events to aOutputStream. This class provides basic services that other appenders build upon. For more information about this appender, please refer to the online manual at http://logback.qos.ch/manual/appenders.html#OutputStreamAppender
-
-
Field Summary
Fields Modifier and Type Field Description protected Encoder<E>encoderIt is the encoder which is ultimately responsible for writing the event to anOutputStream.(package private) booleanimmediateFlushprotected java.util.concurrent.locks.ReentrantLocklockAll synchronization in this class is done via the lock object.private java.io.OutputStreamoutputStreamThis is theoutputStreamwhere output will be written.-
Fields inherited from class ch.qos.logback.core.UnsynchronizedAppenderBase
ALLOWED_REPEATS, name, started
-
Fields inherited from class ch.qos.logback.core.spi.ContextAwareBase
context
-
-
Constructor Summary
Constructors Constructor Description OutputStreamAppender()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidappend(E eventObject)protected voidcloseOutputStream()Close the underlyingOutputStream.(package private) voidencoderClose()(package private) voidencoderInit()Encoder<E>getEncoder()java.io.OutputStreamgetOutputStream()The underlying output stream used by this appender.booleanisImmediateFlush()voidsetEncoder(Encoder<E> encoder)voidsetImmediateFlush(boolean immediateFlush)voidsetLayout(Layout<E> layout)voidsetOutputStream(java.io.OutputStream outputStream)Sets the @link OutputStream} where the log output will go.voidstart()Checks that requires parameters are set and if everything is in order, activates this appender.voidstop()Stop this appender instance.protected voidsubAppend(E event)Actual writing occurs here.private voidwriteBytes(byte[] byteArray)protected voidwriteOut(E event)-
Methods inherited from class ch.qos.logback.core.UnsynchronizedAppenderBase
addFilter, clearAllFilters, doAppend, getCopyOfAttachedFiltersList, getFilterChainDecision, getName, isStarted, setName, toString
-
Methods inherited from class ch.qos.logback.core.spi.ContextAwareBase
addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, getDeclaredOrigin, getStatusManager, setContext
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface ch.qos.logback.core.spi.ContextAware
addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, setContext
-
-
-
-
Field Detail
-
encoder
protected Encoder<E> encoder
It is the encoder which is ultimately responsible for writing the event to anOutputStream.
-
lock
protected final java.util.concurrent.locks.ReentrantLock lock
All synchronization in this class is done via the lock object.
-
outputStream
private java.io.OutputStream outputStream
This is theoutputStreamwhere output will be written.
-
immediateFlush
boolean immediateFlush
-
-
Method Detail
-
getOutputStream
public java.io.OutputStream getOutputStream()
The underlying output stream used by this appender.- Returns:
-
start
public void start()
Checks that requires parameters are set and if everything is in order, activates this appender.- Specified by:
startin interfaceLifeCycle- Overrides:
startin classUnsynchronizedAppenderBase<E>
-
append
protected void append(E eventObject)
- Specified by:
appendin classUnsynchronizedAppenderBase<E>
-
stop
public void stop()
Stop this appender instance. The underlying stream or writer is also closed.Stopped appenders cannot be reused.
- Specified by:
stopin interfaceLifeCycle- Overrides:
stopin classUnsynchronizedAppenderBase<E>
-
closeOutputStream
protected void closeOutputStream()
Close the underlyingOutputStream.
-
encoderClose
void encoderClose()
-
setOutputStream
public void setOutputStream(java.io.OutputStream outputStream)
Sets the @link OutputStream} where the log output will go. The specified
OutputStreammust be opened by the user and be writable. TheOutputStreamwill be closed when the appender instance is closed.- Parameters:
outputStream- An already opened OutputStream.
-
encoderInit
void encoderInit()
-
writeOut
protected void writeOut(E event) throws java.io.IOException
- Throws:
java.io.IOException
-
writeBytes
private void writeBytes(byte[] byteArray) throws java.io.IOException- Throws:
java.io.IOException
-
subAppend
protected void subAppend(E event)
Actual writing occurs here.Most subclasses of
WriterAppenderwill need to override this method.- Since:
- 0.9.0
-
isImmediateFlush
public boolean isImmediateFlush()
-
setImmediateFlush
public void setImmediateFlush(boolean immediateFlush)
-
-