Log4j 1.3alpha-8

org.apache.log4j.rolling
Class FixedWindowRollingPolicy

java.lang.Object
  |
  +--org.apache.log4j.spi.ComponentBase
        |
        +--org.apache.log4j.rolling.RollingPolicyBase
              |
              +--org.apache.log4j.rolling.FixedWindowRollingPolicy
All Implemented Interfaces:
Component, OptionHandler, RollingPolicy

public final class FixedWindowRollingPolicy
extends RollingPolicyBase

When rolling over, FixedWindowRollingPolicy renames files according to a fixed window algorithm as described below.

The ActiveFileName property, which is required, represents the name of the file where current logging output will be written. The FileNamePattern option represents the file name pattern for the archived (rolled over) log files. If present, the FileNamePattern option must include an integer token, that is the string "%i" somewhere within the pattern.

Let max and min represent the values of respectively the MaxIndex and MinIndex options. Let "foo.log" be the value of the ActiveFile option and "foo.%i.log" the value of FileNamePattern. Then, when rolling over, the file foo.max.log will be deleted, the file foo.max-1.log will be renamed as foo.max.log, the file foo.max-2.log renamed as foo.max-1.log, and so on, the file foo.min+1.log renamed as foo.min+2.log. Lastly, the active file foo.log will be renamed as foo.min.log and a new active file name foo.log will be created.

Given that this rollover algorithm requires as many file renaming operations as the window size, large window sizes are discouraged. The current implementation will automatically reduce the window size to 12 when larger values are specified by the user.

Since:
1.3
Author:
Ceki Gülcü

Fields inherited from class org.apache.log4j.rolling.RollingPolicyBase
activeFileName
 
Fields inherited from class org.apache.log4j.spi.ComponentBase
repository
 
Constructor Summary
FixedWindowRollingPolicy()
          Constructs a new instance.
 
Method Summary
 void activateOptions()
          {@inheritDoc}
 int getMaxIndex()
          Get index of oldest log file to be retained.
 int getMinIndex()
          Get index of most recent log file.
 RolloverDescription initialize(String file, boolean append)
          {@inheritDoc}
 RolloverDescription rollover(String currentFileName)
          {@inheritDoc}
 void setMaxIndex(int maxIndex)
          Set index of oldest log file to be retained.
 void setMinIndex(int minIndex)
          Set index of most recent log file.
 
Methods inherited from class org.apache.log4j.rolling.RollingPolicyBase
formatFileName, getActiveFileName, getDatePatternConverter, getFileNamePattern, getIntegerPatternConverter, parseFileNamePattern, setActiveFileName, setFileNamePattern
 
Methods inherited from class org.apache.log4j.spi.ComponentBase
getLogger, getLoggerRepository, getNonFloodingLogger, resetErrorCount, setLoggerRepository
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FixedWindowRollingPolicy

public FixedWindowRollingPolicy()
Constructs a new instance.
Method Detail

activateOptions

public void activateOptions()
{@inheritDoc}
Overrides:
activateOptions in class RollingPolicyBase

initialize

public RolloverDescription initialize(String file,
                                      boolean append)
{@inheritDoc}
Following copied from interface: org.apache.log4j.rolling.RollingPolicy
Parameters:
file - current value of RollingFileAppender.getFile().
append - current value of RollingFileAppender.getAppend().
Returns:
Description of the initialization, may be null to indicate no initialization needed.
Throws:
SecurityException - if denied access to log files.

rollover

public RolloverDescription rollover(String currentFileName)
{@inheritDoc}
Following copied from interface: org.apache.log4j.rolling.RollingPolicy
Parameters:
activeFile - file name for current active log file.
Returns:
Description of pending rollover, may be null to indicate no rollover at this time.
Throws:
SecurityException - if denied access to log files.

getMaxIndex

public int getMaxIndex()
Get index of oldest log file to be retained.
Returns:
index of oldest log file.

getMinIndex

public int getMinIndex()
Get index of most recent log file.
Returns:
index of oldest log file.

setMaxIndex

public void setMaxIndex(int maxIndex)
Set index of oldest log file to be retained.
Parameters:
maxIndex - index of oldest log file to be retained.

setMinIndex

public void setMinIndex(int minIndex)
Set index of most recent log file.
Parameters:
minIndex - Index of most recent log file.

Log4j 1.3alpha-8

Copyright © 2000-2006 Apache Software Foundation.
Licensed under the Apache License, Version 2.0.