ch.qos.logback.core.rolling
Class TimeBasedRollingPolicy<E>

java.lang.Object
  extended by ch.qos.logback.core.spi.ContextAwareBase
      extended by ch.qos.logback.core.rolling.RollingPolicyBase
          extended by ch.qos.logback.core.rolling.TimeBasedRollingPolicy<E>
All Implemented Interfaces:
RollingPolicy, TriggeringPolicy<E>, ContextAware, LifeCycle

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 inherited from class ch.qos.logback.core.rolling.RollingPolicyBase
compressionMode, fileNamePattern, fileNamePatternStr
 
Fields inherited from class ch.qos.logback.core.spi.ContextAwareBase
context
 
Constructor Summary
TimeBasedRollingPolicy()
           
 
Method Summary
 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?
 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 start()
           
 String toString()
           
 
Methods inherited from class ch.qos.logback.core.rolling.RollingPolicyBase
determineCompressionMode, getCompressionMode, getFileNamePattern, getParentsRawFileProperty, isParentPrudent, isStarted, setFileNamePattern, setParent, stop
 
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, stop
 

Constructor Detail

TimeBasedRollingPolicy

public TimeBasedRollingPolicy()
Method Detail

start

public void start()
Specified by:
start in interface LifeCycle
Overrides:
start 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


Copyright © 2005-2013 QOS.ch. All Rights Reserved.