org.apache.log4j.rolling

## Class FixedWindowRollingPolicy

- java.lang.Object
- - org.apache.log4j.rolling.RollingPolicyBase
  - - org.apache.log4j.rolling.FixedWindowRollingPolicy

- All Implemented Interfaces:
    RollingPolicy, org.apache.log4j.spi.OptionHandler

      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.

  Author:
    Ceki Gülcü

- - ### Field Summary

    - ### Fields inherited from class org.apache.log4j.rolling.RollingPolicyBase

      `activeFileName`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FixedWindowRollingPolicy()` Constructs a new instance.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `activateOptions()`
    `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)` Initialize the policy and return any initial actions for rolling file appender..
    `RolloverDescription` | `rollover(String currentFileName)` Prepare for a rollover.
    `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 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()

      Specified by:
        `activateOptions` in interface `org.apache.log4j.spi.OptionHandler`
      Overrides:
        `activateOptions` in class `RollingPolicyBase`

    - #### initialize

          public RolloverDescription initialize(String file,
                                       boolean append)

      Initialize the policy and return any initial actions for rolling file appender..
      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.

    - #### rollover

          public RolloverDescription rollover(String currentFileName)

      Prepare for a rollover. This method is called prior to closing the active log file, performs any necessary preliminary actions and describes actions needed after close of current log file.
      Parameters:
        `currentFileName` - file name for current active log file.
      Returns:
        Description of pending rollover, may be null to indicate no rollover at this time.

    - #### 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.

Copyright © 2013 The Apache Software Foundation. Licensed under the Apache License, Version 2.0

Apache Extras for Apache log4j, Apache log4j and Apache are trademarks of the Apache Software Foundation.