Class AbstractOutputStreamAppender<M extends OutputStreamManager>
- java.lang.Object
-
- org.apache.logging.log4j.core.AbstractLifeCycle
-
- org.apache.logging.log4j.core.filter.AbstractFilterable
-
- org.apache.logging.log4j.core.appender.AbstractAppender
-
- org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender<M>
-
- Type Parameters:
M- The kind ofOutputStreamManagerunder management
- All Implemented Interfaces:
Appender,Filterable,LocationAware,LifeCycle,LifeCycle2
- Direct Known Subclasses:
AbstractFileAppender,ConsoleAppender,FileAppender,MemoryMappedFileAppender,OutputStreamAppender,RandomAccessFileAppender,RollingFileAppender,RollingRandomAccessFileAppender,SocketAppender
public abstract class AbstractOutputStreamAppender<M extends OutputStreamManager> extends AbstractAppender
Appends log events as bytes to a byte output stream. The stream encoding is defined in the layout.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAbstractOutputStreamAppender.Builder<B extends AbstractOutputStreamAppender.Builder<B>>Subclasses can extend this abstract Builder.-
Nested classes/interfaces inherited from interface org.apache.logging.log4j.core.LifeCycle
LifeCycle.State
-
-
Field Summary
Fields Modifier and Type Field Description private booleanimmediateFlushImmediate flush means that the underlying writer or output stream will be flushed at the end of each append operation.private Mmanager-
Fields inherited from class org.apache.logging.log4j.core.AbstractLifeCycle
DEFAULT_STOP_TIMEOUT, DEFAULT_STOP_TIMEUNIT, LOGGER
-
Fields inherited from interface org.apache.logging.log4j.core.Appender
ELEMENT_TYPE, EMPTY_ARRAY
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractOutputStreamAppender(java.lang.String name, Layout<? extends java.io.Serializable> layout, Filter filter, boolean ignoreExceptions, boolean immediateFlush, M manager)protectedAbstractOutputStreamAppender(java.lang.String name, Layout<? extends java.io.Serializable> layout, Filter filter, boolean ignoreExceptions, boolean immediateFlush, Property[] properties, M manager)Instantiates a WriterAppender and set the output destination to a newOutputStreamWriterinitialized withosas itsOutputStream.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidappend(LogEvent event)Actual writing occurs here.protected voiddirectEncodeEvent(LogEvent event)booleangetImmediateFlush()Gets the immediate flush setting.MgetManager()Gets the manager.voidstart()Make the Filter available for use.booleanstop(long timeout, java.util.concurrent.TimeUnit timeUnit)Cleanup the Filter.protected booleanstop(long timeout, java.util.concurrent.TimeUnit timeUnit, boolean changeLifeCycleState)Cleanup the Filter.private voidtryAppend(LogEvent event)protected voidwriteByteArrayToManager(LogEvent event)-
Methods inherited from class org.apache.logging.log4j.core.appender.AbstractAppender
error, error, error, getHandler, getLayout, getName, ignoreExceptions, parseInt, requiresLocation, setHandler, toSerializable, toString
-
Methods inherited from class org.apache.logging.log4j.core.filter.AbstractFilterable
addFilter, getFilter, getPropertyArray, hasFilter, isFiltered, removeFilter
-
Methods inherited from class org.apache.logging.log4j.core.AbstractLifeCycle
equalsImpl, getState, getStatusLogger, hashCodeImpl, initialize, isInitialized, isStarted, isStarting, isStopped, isStopping, setStarted, setStarting, setState, setStopped, setStopping, stop, stop
-
-
-
-
Field Detail
-
immediateFlush
private final boolean immediateFlush
Immediate flush means that the underlying writer or output stream will be flushed at the end of each append operation. Immediate flush is slower but ensures that each append request is actually written. IfimmediateFlushis set tofalse, then there is a good chance that the last few logs events are not actually written to persistent media if and when the application crashes.
-
manager
private final M extends OutputStreamManager manager
-
-
Constructor Detail
-
AbstractOutputStreamAppender
@Deprecated protected AbstractOutputStreamAppender(java.lang.String name, Layout<? extends java.io.Serializable> layout, Filter filter, boolean ignoreExceptions, boolean immediateFlush, M manager)Deprecated.Instantiates a WriterAppender and set the output destination to a newOutputStreamWriterinitialized withosas itsOutputStream.- Parameters:
name- The name of the Appender.layout- The layout to format the message.manager- The OutputStreamManager.
-
AbstractOutputStreamAppender
protected AbstractOutputStreamAppender(java.lang.String name, Layout<? extends java.io.Serializable> layout, Filter filter, boolean ignoreExceptions, boolean immediateFlush, Property[] properties, M manager)Instantiates a WriterAppender and set the output destination to a newOutputStreamWriterinitialized withosas itsOutputStream.- Parameters:
name- The name of the Appender.layout- The layout to format the message.properties- optional propertiesmanager- The OutputStreamManager.
-
-
Method Detail
-
getImmediateFlush
public boolean getImmediateFlush()
Gets the immediate flush setting.- Returns:
- immediate flush.
-
getManager
public M getManager()
Gets the manager.- Returns:
- the manager.
-
start
public void start()
Description copied from class:AbstractFilterableMake the Filter available for use.- Specified by:
startin interfaceLifeCycle- Overrides:
startin classAbstractFilterable
-
stop
public boolean stop(long timeout, java.util.concurrent.TimeUnit timeUnit)Description copied from class:AbstractFilterableCleanup the Filter.- Specified by:
stopin interfaceLifeCycle2- Overrides:
stopin classAbstractFilterable- Parameters:
timeout- the maximum time to waittimeUnit- the time unit of the timeout argument- Returns:
- true if the receiver was stopped cleanly and normally, false otherwise.
-
stop
protected boolean stop(long timeout, java.util.concurrent.TimeUnit timeUnit, boolean changeLifeCycleState)Description copied from class:AbstractFilterableCleanup the Filter.- Overrides:
stopin classAbstractFilterable
-
append
public void append(LogEvent event)
Actual writing occurs here.Most subclasses of
AbstractOutputStreamAppenderwill need to override this method.- Parameters:
event- The LogEvent.
-
tryAppend
private void tryAppend(LogEvent event)
-
directEncodeEvent
protected void directEncodeEvent(LogEvent event)
-
writeByteArrayToManager
protected void writeByteArrayToManager(LogEvent event)
-
-