Class CronTriggeringPolicy
- java.lang.Object
-
- org.apache.logging.log4j.core.AbstractLifeCycle
-
- org.apache.logging.log4j.core.appender.rolling.AbstractTriggeringPolicy
-
- org.apache.logging.log4j.core.appender.rolling.CronTriggeringPolicy
-
- All Implemented Interfaces:
TriggeringPolicy
,LifeCycle
,LifeCycle2
@Plugin(name="CronTriggeringPolicy", category="Core", printObject=true) @Scheduled public final class CronTriggeringPolicy extends AbstractTriggeringPolicy
Rolls a file over based on a cron schedule.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
CronTriggeringPolicy.CronTrigger
-
Nested classes/interfaces inherited from interface org.apache.logging.log4j.core.LifeCycle
LifeCycle.State
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
checkOnStartup
private Configuration
configuration
private CronExpression
cronExpression
private static java.lang.String
defaultSchedule
private CronScheduledFuture<?>
future
private java.util.Date
lastRollDate
private RollingFileManager
manager
-
Fields inherited from class org.apache.logging.log4j.core.AbstractLifeCycle
DEFAULT_STOP_TIMEOUT, DEFAULT_STOP_TIMEUNIT, LOGGER
-
-
Constructor Summary
Constructors Modifier Constructor Description private
CronTriggeringPolicy(CronExpression schedule, boolean checkOnStartup, Configuration configuration)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static CronTriggeringPolicy
createPolicy(Configuration configuration, java.lang.String evaluateOnStartup, java.lang.String schedule)
Creates a ScheduledTriggeringPolicy.CronExpression
getCronExpression()
private static CronExpression
getSchedule(java.lang.String expression)
void
initialize(RollingFileManager aManager)
Initializes the policy.boolean
isTriggeringEvent(LogEvent event)
Determines whether a rollover should occur.private void
rollover()
boolean
stop(long timeout, java.util.concurrent.TimeUnit timeUnit)
Blocks until all tasks have completed execution after a shutdown request, or the timeout occurs, or the current thread is interrupted, whichever happens first.java.lang.String
toString()
-
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, start, stop, stop
-
-
-
-
Field Detail
-
defaultSchedule
private static final java.lang.String defaultSchedule
- See Also:
- Constant Field Values
-
manager
private RollingFileManager manager
-
cronExpression
private final CronExpression cronExpression
-
configuration
private final Configuration configuration
-
checkOnStartup
private final boolean checkOnStartup
-
lastRollDate
private volatile java.util.Date lastRollDate
-
future
private CronScheduledFuture<?> future
-
-
Constructor Detail
-
CronTriggeringPolicy
private CronTriggeringPolicy(CronExpression schedule, boolean checkOnStartup, Configuration configuration)
-
-
Method Detail
-
initialize
public void initialize(RollingFileManager aManager)
Initializes the policy.- Parameters:
aManager
- The RollingFileManager.
-
isTriggeringEvent
public boolean isTriggeringEvent(LogEvent event)
Determines whether a rollover should occur.- Parameters:
event
- A reference to the currently event.- Returns:
- true if a rollover should occur.
-
getCronExpression
public CronExpression getCronExpression()
-
createPolicy
@PluginFactory public static CronTriggeringPolicy createPolicy(@PluginConfiguration Configuration configuration, @PluginAttribute("evaluateOnStartup") java.lang.String evaluateOnStartup, @PluginAttribute("schedule") java.lang.String schedule)
Creates a ScheduledTriggeringPolicy.- Parameters:
configuration
- the Configuration.evaluateOnStartup
- check if the file should be rolled over immediately.schedule
- the cron expression.- Returns:
- a ScheduledTriggeringPolicy.
-
getSchedule
private static CronExpression getSchedule(java.lang.String expression)
-
rollover
private void rollover()
-
stop
public boolean stop(long timeout, java.util.concurrent.TimeUnit timeUnit)
Description copied from interface:LifeCycle2
Blocks until all tasks have completed execution after a shutdown request, or the timeout occurs, or the current thread is interrupted, whichever happens first.- Specified by:
stop
in interfaceLifeCycle2
- Overrides:
stop
in classAbstractLifeCycle
- Parameters:
timeout
- the maximum time to waittimeUnit
- the time unit of the timeout argument- Returns:
- true if the receiver was stopped cleanly and normally, false otherwise.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-