@Plugin(name="BurstFilter", category="Core", elementType="filter", printObject=true) public final class BurstFilter extends AbstractFilter
BurstFilter
is a logging filter that regulates logging traffic.
Use this filter when you want to control the maximum burst of log statements that can be sent to an appender. The filter is configured in the log4j configuration file. For example, the following configuration limits the number of INFO level (as well as DEBUG and TRACE) log statements that can be sent to the console to a burst of 100 with an average rate of 16 per second. WARN, ERROR and FATAL messages would continue to be delivered.
<Console name="console">
<PatternLayout pattern="%-5p %d{dd-MMM-yyyy HH:mm:ss} %x %t %m%n"/>
<filters>
<Burst level="INFO" rate="16" maxBurst="100"/>
</filters>
</Console>
Modifier and Type | Class and Description |
---|---|
static class |
BurstFilter.Builder |
private static class |
BurstFilter.LogDelay
Delay object to represent each log event that has occurred within the timespan.
|
Filter.Result
LifeCycle.State
Modifier and Type | Field and Description |
---|---|
private java.util.Queue<BurstFilter.LogDelay> |
available |
private long |
burstInterval |
private static int |
DEFAULT_RATE |
private static int |
DEFAULT_RATE_MULTIPLE |
private static int |
HASH_SHIFT |
private java.util.concurrent.DelayQueue<BurstFilter.LogDelay> |
history |
private Level |
level
Level of messages to be filtered.
|
private static long |
NANOS_IN_SECONDS |
onMatch, onMismatch
DEFAULT_STOP_TIMEOUT, DEFAULT_STOP_TIMEUNIT, LOGGER
ELEMENT_TYPE
Modifier | Constructor and Description |
---|---|
private |
BurstFilter(Level level,
float rate,
long maxBurst,
Filter.Result onMatch,
Filter.Result onMismatch) |
Modifier and Type | Method and Description |
---|---|
void |
clear()
Clear the history.
|
(package private) static BurstFilter.LogDelay |
createLogDelay(long expireTime) |
private Filter.Result |
filter(Level level)
Decide if we're going to log
event based on whether the
maximum burst of log statements has been exceeded. |
Filter.Result |
filter(LogEvent event)
Context Filter method.
|
Filter.Result |
filter(Logger logger,
Level level,
Marker marker,
Message msg,
java.lang.Throwable t)
Appender Filter method.
|
Filter.Result |
filter(Logger logger,
Level level,
Marker marker,
java.lang.Object msg,
java.lang.Throwable t)
Appender Filter method.
|
Filter.Result |
filter(Logger logger,
Level level,
Marker marker,
java.lang.String msg,
java.lang.Object... params)
Appender Filter method.
|
Filter.Result |
filter(Logger logger,
Level level,
Marker marker,
java.lang.String msg,
java.lang.Object p0)
Appender Filter method.
|
Filter.Result |
filter(Logger logger,
Level level,
Marker marker,
java.lang.String msg,
java.lang.Object p0,
java.lang.Object p1)
Appender Filter method.
|
Filter.Result |
filter(Logger logger,
Level level,
Marker marker,
java.lang.String msg,
java.lang.Object p0,
java.lang.Object p1,
java.lang.Object p2)
Appender Filter method.
|
Filter.Result |
filter(Logger logger,
Level level,
Marker marker,
java.lang.String msg,
java.lang.Object p0,
java.lang.Object p1,
java.lang.Object p2,
java.lang.Object p3)
Appender Filter method.
|
Filter.Result |
filter(Logger logger,
Level level,
Marker marker,
java.lang.String msg,
java.lang.Object p0,
java.lang.Object p1,
java.lang.Object p2,
java.lang.Object p3,
java.lang.Object p4)
Appender Filter method.
|
Filter.Result |
filter(Logger logger,
Level level,
Marker marker,
java.lang.String msg,
java.lang.Object p0,
java.lang.Object p1,
java.lang.Object p2,
java.lang.Object p3,
java.lang.Object p4,
java.lang.Object p5)
Appender Filter method.
|
Filter.Result |
filter(Logger logger,
Level level,
Marker marker,
java.lang.String msg,
java.lang.Object p0,
java.lang.Object p1,
java.lang.Object p2,
java.lang.Object p3,
java.lang.Object p4,
java.lang.Object p5,
java.lang.Object p6)
Appender Filter method.
|
Filter.Result |
filter(Logger logger,
Level level,
Marker marker,
java.lang.String msg,
java.lang.Object p0,
java.lang.Object p1,
java.lang.Object p2,
java.lang.Object p3,
java.lang.Object p4,
java.lang.Object p5,
java.lang.Object p6,
java.lang.Object p7)
Appender Filter method.
|
Filter.Result |
filter(Logger logger,
Level level,
Marker marker,
java.lang.String msg,
java.lang.Object p0,
java.lang.Object p1,
java.lang.Object p2,
java.lang.Object p3,
java.lang.Object p4,
java.lang.Object p5,
java.lang.Object p6,
java.lang.Object p7,
java.lang.Object p8)
Appender Filter method.
|
Filter.Result |
filter(Logger logger,
Level level,
Marker marker,
java.lang.String msg,
java.lang.Object p0,
java.lang.Object p1,
java.lang.Object p2,
java.lang.Object p3,
java.lang.Object p4,
java.lang.Object p5,
java.lang.Object p6,
java.lang.Object p7,
java.lang.Object p8,
java.lang.Object p9)
Appender Filter method.
|
int |
getAvailable()
Returns the number of available slots.
|
static BurstFilter.Builder |
newBuilder() |
java.lang.String |
toString() |
equalsImpl, getOnMatch, getOnMismatch, hashCodeImpl
getState, getStatusLogger, initialize, isInitialized, isStarted, isStarting, isStopped, isStopping, setStarted, setStarting, setState, setStopped, setStopping, start, stop, stop, stop
private static final long NANOS_IN_SECONDS
private static final int DEFAULT_RATE
private static final int DEFAULT_RATE_MULTIPLE
private static final int HASH_SHIFT
private final Level level
maxBurst
has been exceeded. The default is
WARN meaning any messages that are higher than warn will be logged
regardless of the size of a burst.private final long burstInterval
private final java.util.concurrent.DelayQueue<BurstFilter.LogDelay> history
private final java.util.Queue<BurstFilter.LogDelay> available
private BurstFilter(Level level, float rate, long maxBurst, Filter.Result onMatch, Filter.Result onMismatch)
static BurstFilter.LogDelay createLogDelay(long expireTime)
public Filter.Result filter(Logger logger, Level level, Marker marker, java.lang.String msg, java.lang.Object... params)
AbstractFilter
filter
in interface Filter
filter
in class AbstractFilter
logger
- the Logger.level
- The logging Level.marker
- The Marker, if any.msg
- The message, if present.params
- An array of parameters or null.public Filter.Result filter(Logger logger, Level level, Marker marker, java.lang.Object msg, java.lang.Throwable t)
AbstractFilter
filter
in interface Filter
filter
in class AbstractFilter
logger
- the Logger.level
- The logging Level.marker
- The Marker, if any.msg
- The message, if present.t
- A throwable or null.public Filter.Result filter(Logger logger, Level level, Marker marker, Message msg, java.lang.Throwable t)
AbstractFilter
filter
in interface Filter
filter
in class AbstractFilter
logger
- the Logger.level
- The logging Level.marker
- The Marker, if any.msg
- The message, if present.t
- A throwable or null.public Filter.Result filter(LogEvent event)
AbstractFilter
filter
in interface Filter
filter
in class AbstractFilter
event
- The LogEvent.public Filter.Result filter(Logger logger, Level level, Marker marker, java.lang.String msg, java.lang.Object p0)
AbstractFilter
filter
in interface Filter
filter
in class AbstractFilter
logger
- the Logger.level
- The logging Level.marker
- The Marker, if any.msg
- The message, if present.p0
- the message parameterspublic Filter.Result filter(Logger logger, Level level, Marker marker, java.lang.String msg, java.lang.Object p0, java.lang.Object p1)
AbstractFilter
filter
in interface Filter
filter
in class AbstractFilter
logger
- the Logger.level
- The logging Level.marker
- The Marker, if any.msg
- The message, if present.p0
- the message parametersp1
- the message parameterspublic Filter.Result filter(Logger logger, Level level, Marker marker, java.lang.String msg, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2)
AbstractFilter
filter
in interface Filter
filter
in class AbstractFilter
logger
- the Logger.level
- The logging Level.marker
- The Marker, if any.msg
- The message, if present.p0
- the message parametersp1
- the message parametersp2
- the message parameterspublic Filter.Result filter(Logger logger, Level level, Marker marker, java.lang.String msg, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2, java.lang.Object p3)
AbstractFilter
filter
in interface Filter
filter
in class AbstractFilter
logger
- the Logger.level
- The logging Level.marker
- The Marker, if any.msg
- The message, if present.p0
- the message parametersp1
- the message parametersp2
- the message parametersp3
- the message parameterspublic Filter.Result filter(Logger logger, Level level, Marker marker, java.lang.String msg, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4)
AbstractFilter
filter
in interface Filter
filter
in class AbstractFilter
logger
- the Logger.level
- The logging Level.marker
- The Marker, if any.msg
- The message, if present.p0
- the message parametersp1
- the message parametersp2
- the message parametersp3
- the message parametersp4
- the message parameterspublic Filter.Result filter(Logger logger, Level level, Marker marker, java.lang.String msg, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5)
AbstractFilter
filter
in interface Filter
filter
in class AbstractFilter
logger
- the Logger.level
- The logging Level.marker
- The Marker, if any.msg
- The message, if present.p0
- the message parametersp1
- the message parametersp2
- the message parametersp3
- the message parametersp4
- the message parametersp5
- the message parameterspublic Filter.Result filter(Logger logger, Level level, Marker marker, java.lang.String msg, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6)
AbstractFilter
filter
in interface Filter
filter
in class AbstractFilter
logger
- the Logger.level
- The logging Level.marker
- The Marker, if any.msg
- The message, if present.p0
- the message parametersp1
- the message parametersp2
- the message parametersp3
- the message parametersp4
- the message parametersp5
- the message parametersp6
- the message parameterspublic Filter.Result filter(Logger logger, Level level, Marker marker, java.lang.String msg, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6, java.lang.Object p7)
AbstractFilter
filter
in interface Filter
filter
in class AbstractFilter
logger
- the Logger.level
- The logging Level.marker
- The Marker, if any.msg
- The message, if present.p0
- the message parametersp1
- the message parametersp2
- the message parametersp3
- the message parametersp4
- the message parametersp5
- the message parametersp6
- the message parametersp7
- the message parameterspublic Filter.Result filter(Logger logger, Level level, Marker marker, java.lang.String msg, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6, java.lang.Object p7, java.lang.Object p8)
AbstractFilter
filter
in interface Filter
filter
in class AbstractFilter
logger
- the Logger.level
- The logging Level.marker
- The Marker, if any.msg
- The message, if present.p0
- the message parametersp1
- the message parametersp2
- the message parametersp3
- the message parametersp4
- the message parametersp5
- the message parametersp6
- the message parametersp7
- the message parametersp8
- the message parameterspublic Filter.Result filter(Logger logger, Level level, Marker marker, java.lang.String msg, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6, java.lang.Object p7, java.lang.Object p8, java.lang.Object p9)
AbstractFilter
filter
in interface Filter
filter
in class AbstractFilter
logger
- the Logger.level
- The logging Level.marker
- The Marker, if any.msg
- The message, if present.p0
- the message parametersp1
- the message parametersp2
- the message parametersp3
- the message parametersp4
- the message parametersp5
- the message parametersp6
- the message parametersp7
- the message parametersp8
- the message parametersp9
- the message parametersprivate Filter.Result filter(Level level)
event
based on whether the
maximum burst of log statements has been exceeded.level
- The log level.public int getAvailable()
public void clear()
public java.lang.String toString()
toString
in class AbstractFilter
@PluginBuilderFactory public static BurstFilter.Builder newBuilder()