Я использую файл appender в log4j2 и использую политику запуска по времени. Вот как выглядит мой файл конфигурации:
...
<RollingFile name="RollingFile" fileName="logs/temp.log" filePattern="logs/test1-%d{MM-dd-yy-HH-mm-ss-SSS}.log">
<Policies>
<TimeBasedTriggeringPolicy interval="2"></TimeBasedTriggeringPolicy>
</Policies>
<JsonLayout eventEol="true" compact="true"></JsonLayout>
<CustomStrategy />
</RollingFile>
...
Я написал класс CustomStrategy
, который расширяет DefaultRolloverStrategy
, а затем переопределил метод rollover
следующим образом:
@Override
public RolloverDescription rollover(final RollingFileManager manager) throws SecurityException {
RolloverDescription temp = super.rollover(manager);
//Read file that just got rolled over and do some stuff
return temp;
}
В этом методе мне нужно имя файла, который только что был пролонгирован, то есть изначально журналы записываются в temp.log
, а затем переносятся в test1-[some timestamp]
, чтобы прочитать его и выполнить определенные операции. Кто-нибудь может подсказать, как получить имя файла (test1-[some timestamp]
)?