public class

AsyncAppender

extends AppenderSkeleton
implements AppenderAttachable
java.lang.Object
   ↳ org.apache.log4j.AppenderSkeleton
     ↳ org.apache.log4j.AsyncAppender

Class Overview

The AsyncAppender lets users log events asynchronously.

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 buffer.

Important note: The AsyncAppender can only be script configured using the DOMConfigurator.

Summary

Constants
int DEFAULT_BUFFER_SIZE The default buffer size is set to 128 events.
[Expand]
Inherited Fields
From class org.apache.log4j.AppenderSkeleton
Public Constructors
AsyncAppender()
Create new instance.
Public Methods
void addAppender(Appender newAppender)
Add 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.
Enumeration getAllAppenders()
Get iterator over attached appenders.
Appender getAppender(String name)
Get appender by name.
boolean getBlocking()
Gets whether appender should block calling thread when buffer is full.
int getBufferSize()
Gets the current buffer size.
boolean getLocationInfo()
Gets whether the location of the logging request call should be captured.
boolean isAttached(Appender appender)
Determines if specified appender is attached.
void removeAllAppenders()
Removes and closes all attached appenders.
void removeAppender(String name)
Remove appender by name.
void removeAppender(Appender appender)
Removes an appender.
boolean requiresLayout()
void setBlocking(boolean value)
Sets whether appender should wait if there is no space available in the event buffer or immediately return.
void setBufferSize(int size)
Sets the number of messages allowed in the event buffer before the calling thread is blocked (if blocking is true) or until messages are summarized and discarded.
void setLocationInfo(boolean flag)
The LocationInfo option takes a boolean value.
[Expand]
Inherited Methods
From class org.apache.log4j.AppenderSkeleton
From class java.lang.Object
From interface org.apache.log4j.Appender
From interface org.apache.log4j.spi.AppenderAttachable
From interface org.apache.log4j.spi.OptionHandler

Constants

public static final int DEFAULT_BUFFER_SIZE

The default buffer size is set to 128 events.

Constant Value: 128 (0x00000080)

Public Constructors

public AsyncAppender ()

Create new instance.

Public Methods

public void addAppender (Appender newAppender)

Add appender.

Parameters
newAppender appender to add, may not be null.

public void append (LoggingEvent event)

Subclasses of AppenderSkeleton should implement this method to perform actual logging. See also AppenderSkeleton.doAppend method.

public void close ()

Close this AsyncAppender by interrupting the dispatcher thread which will process all pending events before exiting.

public Enumeration getAllAppenders ()

Get iterator over attached appenders.

Returns
  • iterator or null if no attached appenders.

public Appender getAppender (String name)

Get appender by name.

Parameters
name name, may not be null.
Returns
  • matching appender or null.

public boolean getBlocking ()

Gets whether appender should block calling thread when buffer is full. If false, messages will be counted by logger and a summary message appended after the contents of the buffer have been appended.

Returns
  • true if calling thread will be blocked when buffer is full.

public int getBufferSize ()

Gets the current buffer size.

Returns
  • the current value of the BufferSize option.

public boolean getLocationInfo ()

Gets whether the location of the logging request call should be captured.

Returns
  • the current value of the LocationInfo option.

public boolean isAttached (Appender appender)

Determines if specified appender is attached.

Parameters
appender appender.
Returns
  • true if attached.

public void removeAllAppenders ()

Removes and closes all attached appenders.

public void removeAppender (String name)

Remove appender by name.

Parameters
name name.

public void removeAppender (Appender appender)

Removes an appender.

Parameters
appender appender to remove.

public boolean requiresLayout ()

public void setBlocking (boolean value)

Sets whether appender should wait if there is no space available in the event buffer or immediately return.

Parameters
value true if appender should wait until available space in buffer.

public void setBufferSize (int size)

Sets the number of messages allowed in the event buffer before the calling thread is blocked (if blocking is true) or until messages are summarized and discarded. Changing the size will not affect messages already in the buffer.

Parameters
size buffer size, must be positive.

public void setLocationInfo (boolean flag)

The LocationInfo option takes a boolean value. By default, it is set to false which means there will be no effort to extract the location information related to the event. As a result, the event that will be ultimately logged will likely to contain the wrong location information (if present in the log format).

Location information extraction is comparatively very slow and should be avoided unless performance is not a concern.

Parameters
flag true if location information should be extracted.