public RolloverDescription rollover()

in src/main/java/org/apache/log4j/rolling/TimeBasedRollingPolicy.java [222:272]


  public RolloverDescription rollover(final String currentActiveFile) {
    long n = System.currentTimeMillis();
    nextCheck = ((n / 1000) + 1) * 1000;

    StringBuffer buf = new StringBuffer();
    formatFileName(new Date(n), buf);

    String newFileName = buf.toString();

    //
    //  if file names haven't changed, no rollover
    //
    if (newFileName.equals(lastFileName)) {
      return null;
    }

    Action renameAction = null;
    Action compressAction = null;
    String lastBaseName =
      lastFileName.substring(0, lastFileName.length() - suffixLength);
    String nextActiveFile =
      newFileName.substring(0, newFileName.length() - suffixLength);

    //
    //   if currentActiveFile is not lastBaseName then
    //        active file name is not following file pattern
    //        and requires a rename plus maintaining the same name
    if (!currentActiveFile.equals(lastBaseName)) {
      renameAction =
        new FileRenameAction(
          new File(currentActiveFile), new File(lastBaseName), true);
      nextActiveFile = currentActiveFile;
    }

    if (suffixLength == 3) {
      compressAction =
        new GZCompressAction(
          new File(lastBaseName), new File(lastFileName), true);
    }

    if (suffixLength == 4) {
      compressAction =
        new ZipCompressAction(
          new File(lastBaseName), new File(lastFileName), true);
    }

    lastFileName = newFileName;

    return new RolloverDescriptionImpl(
      nextActiveFile, false, renameAction, compressAction);
  }