То, что вы ищете, на самом деле - RolloverDescription , которое содержит два типа действий:
AsyncAction - Действие, которое должно быть выполнено после закрытия текущего активного файла журнала и до следующей попытки пролонгации, может выполняться асинхронно.
SyncAction - Действие, которое необходимо выполнить после закрытия текущего активного файла журнала перед возвратом управления вызывающей стороне.
Часть, где выполняются эти действия, - RollingFileManager.rollover
final RolloverDescription descriptor = strategy.rollover(this);
if (descriptor != null) {
writeFooter();
closeOutputStream();
if (descriptor.getSynchronous() != null) {
LOGGER.debug("RollingFileManager executing synchronous {}", descriptor.getSynchronous());
try {
success = descriptor.getSynchronous().execute();
} catch (final Exception ex) {
success = false;
logError("Caught error in synchronous task", ex);
}
}
if (success && descriptor.getAsynchronous() != null) {
LOGGER.debug("RollingFileManager executing async {}", descriptor.getAsynchronous());
asyncExecutor.execute(new AsyncAction(descriptor.getAsynchronous(), this));
releaseRequired = false;
}
return true;
}
Итак, ваш CustomStrategy.rollover - это то, что происходит в первой строке фрагмента кода выше. CustomStrategy.rollover возвращает RolloverDescription, которая состоит из выполняемого действия, как я объяснил выше.