Appends LogEvents. An Appender can contain a Layout if applicable as well
as an ErrorHandler. Typical Appender implementations coordinate with an
implementation of AbstractManager to handle external resources
such as streams, connections, and other shared state. As Appenders are plugins, concrete implementations need to
be annotated with Plugin and need to provide a static
factory method annotated with PluginFactory.

Most core plugins are written using a related Manager class that handle the actual task of serializing a
LogEvent to some output location. For instance, many Appenders can take
advantage of the OutputStreamManager class.

It is recommended that Appenders don't do any heavy lifting since there can be many instances of the class
being used at any given time. When resources require locking (e.g., through FileLock),
it is important to isolate synchronized code to prevent concurrency issues.

Field Detail

ELEMENT_TYPE

Method Detail

append

Logs a LogEvent using whatever logic this Appender wishes to use. It is typically recommended to use a
bridge pattern not only for the benefits from decoupling an Appender from its implementation, but it is also
handy for sharing resources which may require some form of locking.