public class AsyncAppender extends AppenderSkeleton implements AppenderAttachable
The AsyncAppender will collect the events sent to it and then dispatch them to all the appenders that are attached to it. You can attach multiple appenders to an AsyncAppender.
The AsyncAppender uses a separate thread to serve the events in its bounded buffer.
Refer to the results in org.apache.log4j.performance.Logging
for the impact of using this appender.
Important note: The AsyncAppender can only
be script configured using the DOMConfigurator.
| Modifier and Type | Field and Description |
|---|---|
static int |
DEFAULT_BUFFER_SIZE
The default buffer size is set to 128 events.
|
closed, errorHandler, headFilter, layout, name, tailFilter, threshold| Constructor and Description |
|---|
AsyncAppender() |
| Modifier and Type | Method and Description |
|---|---|
void |
addAppender(Appender newAppender)
Add an appender.
|
void |
append(LoggingEvent event)
Subclasses of
AppenderSkeleton should implement this
method to perform actual logging. |
void |
close()
Close this
AsyncAppender by interrupting the
dispatcher thread which will process all pending events before
exiting. |
java.util.Enumeration |
getAllAppenders()
Get all previously added appenders as an Enumeration.
|
Appender |
getAppender(java.lang.String name)
Get an appender by name.
|
int |
getBufferSize()
Returns the current value of the BufferSize option.
|
boolean |
getLocationInfo()
Returns the current value of the LocationInfo option.
|
boolean |
isAttached(Appender appender)
Is the appender passed as parameter attached to this category?
|
void |
removeAllAppenders()
Remove all previously added appenders.
|
void |
removeAppender(Appender appender)
Remove the appender passed as parameter from the list of appenders.
|
void |
removeAppender(java.lang.String name)
Remove the appender with the name passed as parameter from the
list of appenders.
|
boolean |
requiresLayout()
The
AsyncAppender does not require a layout. |
void |
setBufferSize(int size)
The BufferSize option takes a non-negative integer value.
|
void |
setLocationInfo(boolean flag)
The LocationInfo option takes a boolean value.
|
activateOptions, addFilter, clearFilters, doAppend, finalize, getErrorHandler, getFilter, getFirstFilter, getLayout, getName, getThreshold, isAsSevereAsThreshold, setErrorHandler, setLayout, setName, setThresholdpublic static final int DEFAULT_BUFFER_SIZE
public void addAppender(Appender newAppender)
AppenderAttachableaddAppender in interface AppenderAttachablepublic void append(LoggingEvent event)
AppenderSkeletonAppenderSkeleton should implement this
method to perform actual logging. See also AppenderSkeleton.doAppend method.append in class AppenderSkeletonpublic void close()
AsyncAppender by interrupting the
dispatcher thread which will process all pending events before
exiting.public java.util.Enumeration getAllAppenders()
AppenderAttachablegetAllAppenders in interface AppenderAttachablepublic Appender getAppender(java.lang.String name)
AppenderAttachablegetAppender in interface AppenderAttachablepublic boolean getLocationInfo()
public boolean isAttached(Appender appender)
isAttached in interface AppenderAttachablepublic boolean requiresLayout()
AsyncAppender does not require a layout. Hence,
this method always returns false.requiresLayout in interface Appenderpublic void removeAllAppenders()
AppenderAttachableremoveAllAppenders in interface AppenderAttachablepublic void removeAppender(Appender appender)
AppenderAttachableremoveAppender in interface AppenderAttachablepublic void removeAppender(java.lang.String name)
AppenderAttachableremoveAppender in interface AppenderAttachablepublic void setLocationInfo(boolean flag)
Location information extraction is comparatively very slow and should be avoided unless performance is not a concern.
public void setBufferSize(int size)
default buffer size because
configurators guarantee that an appender cannot be used before
being completely configured.public int getBufferSize()
Copyright 2000-2005 Apache Software Foundation.