Class 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 rollover to be made based on time. It is possible to specify that the rollover 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 Details

    • totalSizeCap

      protected FileSize totalSizeCap
  • Constructor Details

    • TimeBasedRollingPolicy

      public TimeBasedRollingPolicy()
  • Method Details

    • 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 current 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)