FixedWindowRollingPolicy Class Reference

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

Inherits RollingPolicyBase.

## Public Member Functions

| FixedWindowRollingPolicy ()
void | activateOptions (log4cxx::helpers::Pool &p)
| Activate the options that were previously set with calls to option setters. More...
void | setOption (const LogString &option, const LogString &value)
| Set `option` to `value`. More...
void | rollover ()
int | getMaxIndex () const
int | getMinIndex () const
void | setMaxIndex (int newVal)
void | setMinIndex (int newVal)
virtual RolloverDescriptionPtr | initialize (const LogString &file, const bool append, log4cxx::helpers::Pool &p)
| Initialize the policy and return any initial actions for rolling file appender. More...
virtual RolloverDescriptionPtr | rollover (const LogString &activeFile, log4cxx::helpers::Pool &p)
| Prepare for a rollover. More...
Public Member Functions inherited from RollingPolicyBase
| RollingPolicyBase ()
virtual | ~RollingPolicyBase ()
void | addRef () const
void | releaseRef () const
void | setFileNamePattern (const LogString &fnp)
| Set file name pattern. More...
LogString | getFileNamePattern () const
| Get file name pattern. More...
Public Member Functions inherited from RollingPolicy
virtual | ~RollingPolicy ()
Public Member Functions inherited from OptionHandler
virtual | ~OptionHandler ()
Public Member Functions inherited from Object
virtual const helpers::Class & | getClass () const
virtual | ~Object ()
virtual bool | instanceof (const Class &clazz) const =0
virtual const void * | cast (const Class &clazz) const =0
Public Member Functions inherited from ObjectImpl
| ObjectImpl ()
virtual | ~ObjectImpl ()

## Protected Member Functions

log4cxx::pattern::PatternMap | getFormatSpecifiers () const
Protected Member Functions inherited from RollingPolicyBase
void | parseFileNamePattern ()
| Parse file name pattern. More...
void | formatFileName (log4cxx::helpers::ObjectPtr &obj, LogString &buf, log4cxx::helpers::Pool &p) const
| Format file name. More...
log4cxx::pattern::PatternConverterPtr | getIntegerPatternConverter () const
log4cxx::pattern::PatternConverterPtr | getDatePatternConverter () const

## Additional Inherited Members

Static Public Member Functions inherited from Object
static const helpers::Class & | getStaticClass ()
static const log4cxx::helpers::ClassRegistration & | registerClass ()
Protected Attributes inherited from ObjectImpl
unsigned int volatile | ref

## Detailed Description

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" somwhere 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.

## Constructor & Destructor Documentation

FixedWindowRollingPolicy | ( |  | ) |

## Member Function Documentation

void activateOptions | ( | log4cxx::helpers::Pool & | p | ) |

virtual

Activate the options that were previously set with calls to option setters.

This allows to defer activiation of the options until all options have been set. This is required for components which have related options that remain ambigous until all are set.

For example, the FileAppender has the File and Append options both of which are ambigous until the other is also set.

Implements RollingPolicyBase.

log4cxx::pattern::PatternMap getFormatSpecifiers | ( |  | ) | const

protected virtual

Implements RollingPolicyBase.

int getMaxIndex | ( |  | ) | const

int getMinIndex | ( |  | ) | const

virtual RolloverDescriptionPtr initialize | ( | const LogString & | file,
|  | const bool | append,
|  | log4cxx::helpers::Pool & | p
| ) |  |

virtual

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().
  p | pool used for any required memory allocations.

Returns
  Description of the initialization, may be null to indicate no initialization needed.

Exceptions

  SecurityException | if denied access to log files.

Implements RollingPolicy.

void rollover | ( |  | ) |

virtual RolloverDescriptionPtr rollover | ( | const LogString & | activeFile,
|  | log4cxx::helpers::Pool & | p
| ) |  |

virtual

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

  activeFile | file name for current active log file.
  p | pool used for any required memory allocations.

Returns
  Description of pending rollover, may be null to indicate no rollover at this time.

Exceptions

  SecurityException | if denied access to log files.

Implements RollingPolicy.

void setMaxIndex | ( | int | newVal | ) |

void setMinIndex | ( | int | newVal | ) |

void setOption | ( | const LogString & | option,
|  | const LogString & | value
| ) |  |

virtual

Set `option` to `value`.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Reimplemented from RollingPolicyBase.

The documentation for this class was generated from the following file:

- fixedwindowrollingpolicy.h