Class PeriodicSizeRotatingFileHandler

All Implemented Interfaces:
Closeable, Flushable, AutoCloseable, FlushableCloseable, Protectable

public class PeriodicSizeRotatingFileHandler extends PeriodicRotatingFileHandler
A file handler which rotates the log at a preset time interval or the size of the log.

The time interval is determined by the content of the suffix string which is passed in to PeriodicRotatingFileHandler.setSuffix(String).

The size interval is determined by the value passed in the setRotateSize(long).

  • Field Details

    • rotateSize

      private long rotateSize
    • maxBackupIndex

      private int maxBackupIndex
    • outputStream

      private CountingOutputStream outputStream
    • rotateOnBoot

      private boolean rotateOnBoot
  • Constructor Details

    • PeriodicSizeRotatingFileHandler

      public PeriodicSizeRotatingFileHandler()
      Default constructor.
    • PeriodicSizeRotatingFileHandler

      public PeriodicSizeRotatingFileHandler(String fileName) throws FileNotFoundException
      Construct a new instance with the given output file.
      Parameters:
      fileName - the file name
      Throws:
      FileNotFoundException - if the file could not be found on open
    • PeriodicSizeRotatingFileHandler

      public PeriodicSizeRotatingFileHandler(String fileName, boolean append) throws FileNotFoundException
      Construct a new instance with the given output file and append setting.
      Parameters:
      fileName - the file name
      append - true to append, false to overwrite
      Throws:
      FileNotFoundException - if the file could not be found on open
    • PeriodicSizeRotatingFileHandler

      public PeriodicSizeRotatingFileHandler(File file, String suffix) throws FileNotFoundException
      Construct a new instance with the given output file.
      Parameters:
      file - the file
      suffix - the format suffix to use
      Throws:
      FileNotFoundException - if the file could not be found on open
    • PeriodicSizeRotatingFileHandler

      public PeriodicSizeRotatingFileHandler(File file, String suffix, boolean append) throws FileNotFoundException
      Construct a new instance with the given output file and append setting.
      Parameters:
      file - the file
      suffix - the format suffix to use
      append - true to append, false to overwrite
      Throws:
      FileNotFoundException - if the file could not be found on open
    • PeriodicSizeRotatingFileHandler

      public PeriodicSizeRotatingFileHandler(File file, String suffix, long rotateSize, int maxBackupIndex) throws FileNotFoundException
      Construct a new instance with the given output file.
      Parameters:
      file - the file
      suffix - the format suffix to use
      rotateSize - the size the file should rotate at
      maxBackupIndex - the maximum number of files to backup
      Throws:
      FileNotFoundException - if the file could not be found on open
    • PeriodicSizeRotatingFileHandler

      public PeriodicSizeRotatingFileHandler(File file, String suffix, long rotateSize, int maxBackupIndex, boolean append) throws FileNotFoundException
      Construct a new instance with the given output file.
      Parameters:
      file - the file
      suffix - the format suffix to use
      rotateSize - the size the file should rotate at
      maxBackupIndex - the maximum number of files to backup
      append - true to append, false to overwrite
      Throws:
      FileNotFoundException - if the file could not be found on open
  • Method Details

    • setOutputStream

      public void setOutputStream(OutputStream outputStream)
      Description copied from class: OutputStreamHandler
      Set the output stream to write to.
      Overrides:
      setOutputStream in class OutputStreamHandler
      Parameters:
      outputStream - the new output stream or null for none
    • setFile

      public void setFile(File file) throws FileNotFoundException
      Set the output file.
      Overrides:
      setFile in class PeriodicRotatingFileHandler
      Parameters:
      file - the file
      Throws:
      RuntimeException - if there is an attempt to rotate file and the rotation fails
      FileNotFoundException - if an error occurs opening the file
    • isRotateOnBoot

      public boolean isRotateOnBoot()
      Indicates whether or a not the handler should rotate the file before the first log record is written.
      Returns:
      true if file should rotate on boot, otherwise false/
    • setRotateOnBoot

      public void setRotateOnBoot(boolean rotateOnBoot)
      Set to a value of true if the file should be rotated before the a new file is set. The rotation only happens if the file names are the same and the file has a length greater than 0.
      Parameters:
      rotateOnBoot - true to rotate on boot, otherwise false
    • setRotateSize

      public void setRotateSize(long rotateSize)
      Set the rotation size, in bytes.
      Parameters:
      rotateSize - the number of bytes before the log is rotated
    • setMaxBackupIndex

      public void setMaxBackupIndex(int maxBackupIndex)
      Set the maximum backup index (the number of log files to keep around).
      Parameters:
      maxBackupIndex - the maximum backup index
    • preWrite

      protected void preWrite(ExtLogRecord record)
      Description copied from class: PeriodicRotatingFileHandler
      Execute any pre-write policy, such as file rotation. The write lock is held during this method, so make it quick. The default implementation does nothing. This implementation checks to see if the scheduled rollover time has yet occurred.
      Overrides:
      preWrite in class PeriodicRotatingFileHandler
      Parameters:
      record - the record about to be logged
    • rotate

      private void rotate(File file) throws IOException
      Throws:
      IOException