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, setThreshold
public static final int DEFAULT_BUFFER_SIZE
public void addAppender(Appender newAppender)
AppenderAttachable
addAppender
in interface AppenderAttachable
public void append(LoggingEvent event)
AppenderSkeleton
AppenderSkeleton
should implement this
method to perform actual logging. See also AppenderSkeleton.doAppend
method.append
in class AppenderSkeleton
public void close()
AsyncAppender
by interrupting the
dispatcher thread which will process all pending events before
exiting.public java.util.Enumeration getAllAppenders()
AppenderAttachable
getAllAppenders
in interface AppenderAttachable
public Appender getAppender(java.lang.String name)
AppenderAttachable
getAppender
in interface AppenderAttachable
public boolean getLocationInfo()
public boolean isAttached(Appender appender)
isAttached
in interface AppenderAttachable
public boolean requiresLayout()
AsyncAppender
does not require a layout. Hence,
this method always returns false
.requiresLayout
in interface Appender
public void removeAllAppenders()
AppenderAttachable
removeAllAppenders
in interface AppenderAttachable
public void removeAppender(Appender appender)
AppenderAttachable
removeAppender
in interface AppenderAttachable
public void removeAppender(java.lang.String name)
AppenderAttachable
removeAppender
in interface AppenderAttachable
public 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.