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- Author:
- Ceki Gülcü
-
-
Field Summary
Fields Modifier and Type Field Description protected Encoder<E>
encoder
It is the encoder which is ultimately responsible for writing the event to anOutputStream
.protected java.util.concurrent.locks.ReentrantLock
lock
All synchronization in this class is done via the lock object.-
Fields inherited from class ch.qos.logback.core.UnsynchronizedAppenderBase
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 void
append(E eventObject)
protected void
closeOutputStream()
Close the underlyingOutputStream
.Encoder<E>
getEncoder()
java.io.OutputStream
getOutputStream()
The underlying output stream used by this appender.boolean
isImmediateFlush()
void
setEncoder(Encoder<E> encoder)
void
setImmediateFlush(boolean immediateFlush)
void
setLayout(Layout<E> layout)
void
setOutputStream(java.io.OutputStream outputStream)
Sets the @link OutputStream} where the log output will go.void
start()
Checks that requires parameters are set and if everything is in order, activates this appender.void
stop()
Stop this appender instance.protected void
subAppend(E event)
Actual writing occurs here.protected void
writeOut(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
-
-
-
-
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:
start
in interfaceLifeCycle
- Overrides:
start
in classUnsynchronizedAppenderBase<E>
-
append
protected void append(E eventObject)
- Specified by:
append
in 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:
stop
in interfaceLifeCycle
- Overrides:
stop
in classUnsynchronizedAppenderBase<E>
-
closeOutputStream
protected void closeOutputStream()
Close the underlyingOutputStream
.
-
setOutputStream
public void setOutputStream(java.io.OutputStream outputStream)
Sets the @link OutputStream} where the log output will go. The specified
OutputStream
must be opened by the user and be writable. TheOutputStream
will be closed when the appender instance is closed.- Parameters:
outputStream
- An already opened OutputStream.
-
writeOut
protected void writeOut(E event) throws java.io.IOException
- Throws:
java.io.IOException
-
subAppend
protected void subAppend(E event)
Actual writing occurs here.Most subclasses of
WriterAppender
will need to override this method.- Since:
- 0.9.0
-
isImmediateFlush
public boolean isImmediateFlush()
-
setImmediateFlush
public void setImmediateFlush(boolean immediateFlush)
-
-