docs: private File rollFile(boolean showError) throws IOException {
          // If the base file exists, rename it and recreate it.
          File file = new File(directory, fileName + fileExtension);
          if (file.isFile()) {
              // Reuse the file if it's already empty.
              if (file.length() == 0) {
                  return file;
              }
  
              if (maxFiles == 1) {
                  if (!LoggingFileUtils.deleteFile(file, showError)) {
                      // We failed to delete the file and issued a message.
                      return file;
                  }
              } else if (createNewUniqueFile(file, showError) == null) {
                  // We failed to rename (or copy + delete) the base file to a new
                  // file, and we already issued a message.
                  return file;
              }
          }
  
          if (!file.createNewFile() && showError) {
              // Unsafe to use FFDC or ras: log to raw stderr
              String msg = Tr.formatMessage(TraceSpecification.getTc(), "UNABLE_TO_CREATE_RESOURCE_NOEX", file);
              BaseTraceService.rawSystemErr.println(msg);
          }
  
          return file;
      }