ch.qos.logback.core.rolling

## Class TimeBasedRollingPolicy<E>

- java.lang.Object
- - ch.qos.logback.core.spi.ContextAwareBase
  - - ch.qos.logback.core.rolling.RollingPolicyBase
    - - ch.qos.logback.core.rolling.TimeBasedRollingPolicy<E>

All Implemented Interfaces:
  RollingPolicy, TriggeringPolicy<E>, ContextAware, LifeCycle

Direct Known Subclasses:
  SizeAndTimeBasedRollingPolicy

    public class TimeBasedRollingPolicy<E>
    extends RollingPolicyBase
    implements TriggeringPolicy<E>

`TimeBasedRollingPolicy` is both easy to configure and quite powerful. It allows the roll over to be made based on time. It is possible to specify that the roll over occur once per day, per week or per month.

For more information, please refer to the online manual at http://logback.qos.ch/manual/appenders.html#TimeBasedRollingPolicy

Author:
  Ceki Gülcü

### Field Summary

Fields
`protected FileSize` `totalSizeCap`

### Fields inherited from class ch.qos.logback.core.rolling.RollingPolicyBase

`compressionMode, fileNamePatternStr`

### Fields inherited from class ch.qos.logback.core.spi.ContextAwareBase

`context`

### Constructor Summary

Constructors
Constructor and Description
`TimeBasedRollingPolicy()`

### Method Summary

All Methods Instance Methods Concrete Methods
`String` `getActiveFileName()` The active log file is determined by the value of the parent's filename option.
`int` `getMaxHistory()` Get the number of archive files to keep.
`TimeBasedFileNamingAndTriggeringPolicy<E>` `getTimeBasedFileNamingAndTriggeringPolicy()`
`boolean` `isCleanHistoryOnStart()`
`boolean` `isTriggeringEvent(File activeFile, E event)` Should roll-over be triggered at this time?
`protected boolean` `isUnboundedTotalSizeCap()`
`void` `rollover()` Rolls over log files according to implementation policy.
`void` `setCleanHistoryOnStart(boolean cleanHistoryOnStart)` Should archive removal be attempted on application start up? Default is false.
`void` `setMaxHistory(int maxHistory)` Set the maximum number of archive files to keep.
`void` `setTimeBasedFileNamingAndTriggeringPolicy(TimeBasedFileNamingAndTriggeringPolicy<E> timeBasedTriggering)`
`void` `setTotalSizeCap(FileSize totalSizeCap)`
`void` `start()`
`void` `stop()`
`String` `toString()`

### Methods inherited from class ch.qos.logback.core.rolling.RollingPolicyBase

`determineCompressionMode, getCompressionMode, getFileNamePattern, getParentsRawFileProperty, isParentPrudent, isStarted, setFileNamePattern, setParent`

### Methods inherited from class ch.qos.logback.core.spi.ContextAwareBase

`addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, getDeclaredOrigin, getStatusManager, setContext`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface ch.qos.logback.core.spi.LifeCycle

`isStarted`

### Field Detail

#### totalSizeCap

    protected FileSize totalSizeCap

### Constructor Detail

#### TimeBasedRollingPolicy

    public TimeBasedRollingPolicy()

### Method Detail

#### start

    public void start()

Specified by:
  `start` in interface `LifeCycle`
Overrides:
  `start` in class `RollingPolicyBase`

#### isUnboundedTotalSizeCap

    protected boolean isUnboundedTotalSizeCap()

#### stop

    public void stop()

Specified by:
  `stop` in interface `LifeCycle`
Overrides:
  `stop` in class `RollingPolicyBase`

#### setTimeBasedFileNamingAndTriggeringPolicy

    public void setTimeBasedFileNamingAndTriggeringPolicy(TimeBasedFileNamingAndTriggeringPolicy<E> timeBasedTriggering)

#### getTimeBasedFileNamingAndTriggeringPolicy

    public TimeBasedFileNamingAndTriggeringPolicy<E> getTimeBasedFileNamingAndTriggeringPolicy()

#### rollover

    public void rollover()
                  throws RolloverFailure

Description copied from interface: `RollingPolicy`
Rolls over log files according to implementation policy.

This method is invoked by `RollingFileAppender`, usually at the behest of its `TriggeringPolicy`.

Specified by:
  `rollover` in interface `RollingPolicy`
Throws:
  `RolloverFailure` - Thrown if the rollover operation fails for any reason.

#### getActiveFileName

    public String getActiveFileName()

The active log file is determined by the value of the parent's filename option. However, in case the file name is left blank, then, the active log file equals the file name for the current period as computed by the FileNamePattern option.

The RollingPolicy must know whether it is responsible for changing the name of the active file or not. If the active file name is set by the user via the configuration file, then the RollingPolicy must let it like it is. If the user does not specify an active file name, then the RollingPolicy generates one.

To be sure that the file name used by the parent class has been generated by the RollingPolicy and not specified by the user, we keep track of the last generated name object and compare its reference to the parent file name. If they match, then the RollingPolicy knows it's responsible for the change of the file name.

Specified by:
  `getActiveFileName` in interface `RollingPolicy`

#### isTriggeringEvent

    public boolean isTriggeringEvent(File activeFile,
                                     E event)

Description copied from interface: `TriggeringPolicy`
Should roll-over be triggered at this time?

Specified by:
  `isTriggeringEvent` in interface `TriggeringPolicy<E>`
Parameters:
  `activeFile` - A reference to the currently active log file.
  `event` - A reference to the currently event.
Returns:
  true if a roll-over should occur.

#### getMaxHistory

    public int getMaxHistory()

Get the number of archive files to keep.

Returns:
  number of archive files to keep

#### setMaxHistory

    public void setMaxHistory(int maxHistory)

Set the maximum number of archive files to keep.

Parameters:
  `maxHistory` - number of archive files to keep

#### isCleanHistoryOnStart

    public boolean isCleanHistoryOnStart()

#### setCleanHistoryOnStart

    public void setCleanHistoryOnStart(boolean cleanHistoryOnStart)

Should archive removal be attempted on application start up? Default is false.

Parameters:
  `cleanHistoryOnStart` -
Since:
  1.0.1

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`

#### setTotalSizeCap

    public void setTotalSizeCap(FileSize totalSizeCap)