public interface Appender extends LifeCycle
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.
LifeCycle.State| Modifier and Type | Method and Description |
|---|---|
void |
append(LogEvent event)
Logs a LogEvent using whatever logic this Appender wishes to use.
|
ErrorHandler |
getHandler()
Gets the
ErrorHandler used for handling exceptions. |
Layout<? extends Serializable> |
getLayout()
Returns the Layout used by this Appender if applicable.
|
String |
getName()
Get the name of this Appender.
|
boolean |
ignoreExceptions()
Some Appenders need to propagate exceptions back to the application.
|
void |
setHandler(ErrorHandler handler)
Sets the
ErrorHandler used for handling exceptions. |
void append(LogEvent event)
event - The LogEvent.Layout<? extends Serializable> getLayout()
null if none is configured.boolean ignoreExceptions()
ignoreExceptions is
false the AppenderControl will allow the exception to percolate.true if exceptions will be logged but not thrown, false otherwise.ErrorHandler getHandler()
ErrorHandler used for handling exceptions.void setHandler(ErrorHandler handler)
ErrorHandler used for handling exceptions.handler - the ErrorHandler to use for handling exceptions.Copyright © 1999-2021 Apache Software Foundation. All Rights Reserved.
Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo, and the Apache Log4j logo are trademarks of The Apache Software Foundation.