Class FailoverAppender
- java.lang.Object
-
- org.apache.logging.log4j.core.AbstractLifeCycle
-
- org.apache.logging.log4j.core.filter.AbstractFilterable
-
- org.apache.logging.log4j.core.appender.AbstractAppender
-
- org.apache.logging.log4j.core.appender.FailoverAppender
-
- All Implemented Interfaces:
Appender,Filterable,LocationAware,LifeCycle,LifeCycle2
@Plugin(name="Failover", category="Core", elementType="appender", printObject=true) public final class FailoverAppender extends AbstractAppender
The FailoverAppender will capture exceptions in an Appender and then route the event to a different appender. Hopefully it is obvious that the Appenders must be configured to not suppress exceptions for the FailoverAppender to work.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.logging.log4j.core.appender.AbstractAppender
AbstractAppender.Builder<B extends AbstractAppender.Builder<B>>
-
Nested classes/interfaces inherited from interface org.apache.logging.log4j.core.LifeCycle
LifeCycle.State
-
-
Field Summary
Fields Modifier and Type Field Description private Configurationconfigprivate static intDEFAULT_INTERVAL_SECONDSprivate java.util.List<AppenderControl>failoverAppendersprivate java.lang.String[]failoversprivate longintervalNanosprivate longnextCheckNanosprivate AppenderControlprimaryprivate java.lang.StringprimaryRef-
Fields inherited from class org.apache.logging.log4j.core.AbstractLifeCycle
DEFAULT_STOP_TIMEOUT, DEFAULT_STOP_TIMEUNIT, LOGGER
-
Fields inherited from interface org.apache.logging.log4j.core.Appender
ELEMENT_TYPE, EMPTY_ARRAY
-
-
Constructor Summary
Constructors Modifier Constructor Description privateFailoverAppender(java.lang.String name, Filter filter, java.lang.String primary, java.lang.String[] failovers, int intervalMillis, Configuration config, boolean ignoreExceptions, Property[] properties)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidappend(LogEvent event)Handle the Log event.private voidcallAppender(LogEvent event)static FailoverAppendercreateAppender(java.lang.String name, java.lang.String primary, java.lang.String[] failovers, java.lang.String retryIntervalSeconds, Configuration config, Filter filter, java.lang.String ignore)Create a Failover Appender.private voidfailover(LogEvent event, java.lang.Exception ex)voidstart()Make the Filter available for use.java.lang.StringtoString()-
Methods inherited from class org.apache.logging.log4j.core.appender.AbstractAppender
error, error, error, getHandler, getLayout, getName, ignoreExceptions, parseInt, requiresLocation, setHandler, toSerializable
-
Methods inherited from class org.apache.logging.log4j.core.filter.AbstractFilterable
addFilter, getFilter, getPropertyArray, hasFilter, isFiltered, removeFilter, stop, stop
-
Methods inherited from class org.apache.logging.log4j.core.AbstractLifeCycle
equalsImpl, getState, getStatusLogger, hashCodeImpl, initialize, isInitialized, isStarted, isStarting, isStopped, isStopping, setStarted, setStarting, setState, setStopped, setStopping, stop, stop
-
-
-
-
Field Detail
-
DEFAULT_INTERVAL_SECONDS
private static final int DEFAULT_INTERVAL_SECONDS
- See Also:
- Constant Field Values
-
primaryRef
private final java.lang.String primaryRef
-
failovers
private final java.lang.String[] failovers
-
config
private final Configuration config
-
primary
private AppenderControl primary
-
failoverAppenders
private final java.util.List<AppenderControl> failoverAppenders
-
intervalNanos
private final long intervalNanos
-
nextCheckNanos
private volatile long nextCheckNanos
-
-
Constructor Detail
-
FailoverAppender
private FailoverAppender(java.lang.String name, Filter filter, java.lang.String primary, java.lang.String[] failovers, int intervalMillis, Configuration config, boolean ignoreExceptions, Property[] properties)
-
-
Method Detail
-
start
public void start()
Description copied from class:AbstractFilterableMake the Filter available for use.- Specified by:
startin interfaceLifeCycle- Overrides:
startin classAbstractFilterable
-
append
public void append(LogEvent event)
Handle the Log event.- Parameters:
event- The LogEvent.
-
callAppender
private void callAppender(LogEvent event)
-
failover
private void failover(LogEvent event, java.lang.Exception ex)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classAbstractAppender
-
createAppender
@PluginFactory public static FailoverAppender createAppender(@PluginAttribute("name") java.lang.String name, @PluginAttribute("primary") java.lang.String primary, @PluginElement("Failovers") java.lang.String[] failovers, @PluginAliases("retryInterval") @PluginAttribute("retryIntervalSeconds") java.lang.String retryIntervalSeconds, @PluginConfiguration Configuration config, @PluginElement("Filter") Filter filter, @PluginAttribute("ignoreExceptions") java.lang.String ignore)
Create a Failover Appender.- Parameters:
name- The name of the Appender (required).primary- The name of the primary Appender (required).failovers- The name of one or more Appenders to fail over to (at least one is required).retryIntervalSeconds- The retry interval in seconds.config- The current Configuration (passed by the Configuration when the appender is created).filter- A Filter (optional).ignore- If"true"(default) exceptions encountered when appending events are logged; otherwise they are propagated to the caller.- Returns:
- The FailoverAppender that was created.
-
-