Class RevolvingFileStrategy

java.lang.Object
org.apache.log.output.io.rotate.RevolvingFileStrategy
All Implemented Interfaces:
FileStrategy

public class RevolvingFileStrategy extends Object implements FileStrategy
strategy for naming log files based on appending revolving suffix. If the initial rotation is not specified then the class will attempt to calculate the rotation number via the following algorithm. It will search for the file with the highest number in the rotation. It will then increment its rotation number and use that number. If all files in rotation are present then it will then set the initial rotation to the next rotation after the most recently created file.
Author:
Avalon Development Team, Bernhard Huber, Peter Donald, David Gray
  • Field Details

    • PATTERN

      private static final String PATTERN
      See Also:
    • m_decimalFormat

      private DecimalFormat m_decimalFormat
    • m_rotation

      private int m_rotation
    • m_maxRotations

      private int m_maxRotations
    • m_baseFile

      private File m_baseFile
  • Constructor Details

    • RevolvingFileStrategy

      public RevolvingFileStrategy(File baseFile, int maxRotations)
      Creation of a new instane ofthe revolving file strategy.
      Parameters:
      baseFile - the base file
      maxRotations - the maximum number of rotations ??
    • RevolvingFileStrategy

      public RevolvingFileStrategy(File baseFile, int initialRotation, int maxRotations)
      Creation of a new instane ofthe revolving file strategy.
      Parameters:
      baseFile - the base file
      initialRotation - the number of initial rotations ??
      maxRotations - the maximum number of rotations??
  • Method Details

    • nextFile

      public File nextFile()
      Calculate the real file name from the base filename.
      Specified by:
      nextFile in interface FileStrategy
      Returns:
      File the calculated file name
    • getCurrentRotation

      public int getCurrentRotation()
      Retrieve the current rotation number.
      Returns:
      the current rotation number.
    • calculateInitialRotation

      private int calculateInitialRotation()
      Method that searches through files that match the pattern for resolving file and determine the last generation written to.
      Returns:
      the initial rotation
    • calculateRotations

      private int[] calculateRotations(File[] matchingFiles)
      Generate an array of rotation numbers for all the files specified.
      Parameters:
      matchingFiles - the files to generate rotation numbers for
      Returns:
      the array containing rotations
    • calculateRotationForFile

      private int calculateRotationForFile(File file)
      Return the rotation for the specified file
      Parameters:
      file - the file to check
      Returns:
      the rotation of the file
    • getMatchingFiles

      private File[] getMatchingFiles()
      Get a list of files that could have been part of the rotation.
      Returns:
      the list of files that match