@Plugin(name="Routing", category="Core", elementType="appender", printObject=true) public final class RoutingAppender extends AbstractAppender
| Modifier and Type | Class and Description |
|---|---|
static class |
RoutingAppender.Builder<B extends RoutingAppender.Builder<B>> |
private static class |
RoutingAppender.CreatedRouteAppenderControl |
private static class |
RoutingAppender.ReferencedRouteAppenderControl |
private static class |
RoutingAppender.RouteAppenderControl
LOG4J2-2629: PurgePolicy implementations can invoke
deleteAppender(String) after we have looked up
an instance of a target appender but before events are appended, which could result in events not being
recorded to any appender. |
LifeCycle.State| Modifier and Type | Field and Description |
|---|---|
private Configuration |
configuration |
private java.util.concurrent.ConcurrentMap<java.lang.String,RoutingAppender.CreatedRouteAppenderControl> |
createdAppenders |
private java.util.Map<java.lang.String,AppenderControl> |
createdAppendersUnmodifiableView |
private static java.lang.String |
DEFAULT_KEY |
private Route |
defaultRoute |
private AbstractScript |
defaultRouteScript |
private PurgePolicy |
purgePolicy |
private java.util.concurrent.ConcurrentMap<java.lang.String,RoutingAppender.RouteAppenderControl> |
referencedAppenders |
private RewritePolicy |
rewritePolicy |
private Routes |
routes |
private java.util.concurrent.ConcurrentMap<java.lang.Object,java.lang.Object> |
scriptStaticVariables |
static java.lang.String |
STATIC_VARIABLES_KEY |
DEFAULT_STOP_TIMEOUT, DEFAULT_STOP_TIMEUNIT, LOGGERELEMENT_TYPE| Modifier | Constructor and Description |
|---|---|
private |
RoutingAppender(java.lang.String name,
Filter filter,
boolean ignoreExceptions,
Routes routes,
RewritePolicy rewritePolicy,
Configuration configuration,
PurgePolicy purgePolicy,
AbstractScript defaultRouteScript,
Property[] properties) |
| Modifier and Type | Method and Description |
|---|---|
void |
append(LogEvent event)
Logs a LogEvent using whatever logic this Appender wishes to use.
|
private Appender |
createAppender(Route route,
LogEvent event) |
static RoutingAppender |
createAppender(java.lang.String name,
java.lang.String ignore,
Routes routes,
Configuration config,
RewritePolicy rewritePolicy,
PurgePolicy purgePolicy,
Filter filter)
Deprecated.
Since 2.7; use
newBuilder() |
void |
deleteAppender(java.lang.String key)
Deletes the specified appender.
|
private RoutingAppender.RouteAppenderControl |
getAppender(java.lang.String key) |
java.util.Map<java.lang.String,AppenderControl> |
getAppenders()
Returns an unmodifiable view of the appenders created by this
RoutingAppender. |
Configuration |
getConfiguration() |
private RoutingAppender.RouteAppenderControl |
getControl(java.lang.String key,
LogEvent event) |
Route |
getDefaultRoute() |
AbstractScript |
getDefaultRouteScript() |
PurgePolicy |
getPurgePolicy() |
RewritePolicy |
getRewritePolicy() |
Routes |
getRoutes() |
java.util.concurrent.ConcurrentMap<java.lang.Object,java.lang.Object> |
getScriptStaticVariables() |
static <B extends RoutingAppender.Builder<B>> |
newBuilder() |
void |
start()
Make the Filter available for use.
|
boolean |
stop(long timeout,
java.util.concurrent.TimeUnit timeUnit)
Cleanup the Filter.
|
private void |
updatePurgePolicy(java.lang.String key,
LogEvent event) |
error, error, error, getHandler, getLayout, getName, ignoreExceptions, parseInt, requiresLocation, setHandler, toSerializable, toStringaddFilter, getFilter, getPropertyArray, hasFilter, isFiltered, removeFilter, stopequalsImpl, getState, getStatusLogger, hashCodeImpl, initialize, isInitialized, isStarted, isStarting, isStopped, isStopping, setStarted, setStarting, setState, setStopped, setStopping, stop, stoppublic static final java.lang.String STATIC_VARIABLES_KEY
private static final java.lang.String DEFAULT_KEY
private final Routes routes
private Route defaultRoute
private final Configuration configuration
private final java.util.concurrent.ConcurrentMap<java.lang.String,RoutingAppender.CreatedRouteAppenderControl> createdAppenders
private final java.util.Map<java.lang.String,AppenderControl> createdAppendersUnmodifiableView
private final java.util.concurrent.ConcurrentMap<java.lang.String,RoutingAppender.RouteAppenderControl> referencedAppenders
private final RewritePolicy rewritePolicy
private final PurgePolicy purgePolicy
private final AbstractScript defaultRouteScript
private final java.util.concurrent.ConcurrentMap<java.lang.Object,java.lang.Object> scriptStaticVariables
private RoutingAppender(java.lang.String name,
Filter filter,
boolean ignoreExceptions,
Routes routes,
RewritePolicy rewritePolicy,
Configuration configuration,
PurgePolicy purgePolicy,
AbstractScript defaultRouteScript,
Property[] properties)
@PluginBuilderFactory public static <B extends RoutingAppender.Builder<B>> B newBuilder()
public void start()
AbstractFilterablestart in interface LifeCyclestart in class AbstractFilterablepublic boolean stop(long timeout,
java.util.concurrent.TimeUnit timeUnit)
AbstractFilterablestop in interface LifeCycle2stop in class AbstractFilterabletimeout - the maximum time to waittimeUnit - the time unit of the timeout argumentpublic void append(LogEvent event)
Appenderevent - The LogEvent.private void updatePurgePolicy(java.lang.String key,
LogEvent event)
private RoutingAppender.RouteAppenderControl getControl(java.lang.String key, LogEvent event)
private RoutingAppender.RouteAppenderControl getAppender(java.lang.String key)
public java.util.Map<java.lang.String,AppenderControl> getAppenders()
RoutingAppender.
Note that this map does not contain appenders that are routed by reference.public void deleteAppender(java.lang.String key)
key - The appender's key@Deprecated public static RoutingAppender createAppender(java.lang.String name, java.lang.String ignore, Routes routes, Configuration config, RewritePolicy rewritePolicy, PurgePolicy purgePolicy, Filter filter)
newBuilder()name - The name of the Appender.ignore - If "true" (default) exceptions encountered when appending events are logged; otherwise
they are propagated to the caller.routes - The routing definitions.config - The Configuration (automatically added by the Configuration).rewritePolicy - A RewritePolicy, if any.filter - A Filter to restrict events processed by the Appender or null.public Route getDefaultRoute()
public AbstractScript getDefaultRouteScript()
public PurgePolicy getPurgePolicy()
public RewritePolicy getRewritePolicy()
public Routes getRoutes()
public Configuration getConfiguration()
public java.util.concurrent.ConcurrentMap<java.lang.Object,java.lang.Object> getScriptStaticVariables()