Проблема следующая.
Есть log4j2 конфиг
<?xml version="1.0" encoding="UTF-8" ?>
<Configuration status="DEBUG">
<Appenders>
<Console name="ConsoleAppender" target="SYSTEM_OUT">
<PatternLayout pattern="%highlight{%d{yyyy-MM-dd HH:mm:ss} [%T] %t %-5level %logger{36} - %msg}%n%throwable"/>
</Console>
<File name="FileAppender" fileName="${log4j:configParentLocation}/../test-output/logs/all.tests.log" immediateFlush="true" append="true">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%T] %t %-5level %logger{36} - %msg%n%throwable"/>
</File>
<Routing name="RoutingAppender">
<Routes pattern="${ctx:logFilePath}">
<!-- This route is chosen if ThreadContext has a value for logFileName.
The value dynamically determines the name of the log file. -->
<Route>
<File name="TestAppender"
fileName="${ctx:logFilePath}"
immediateFlush="true"
append="true">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%T] %t %-5level %logger{36} - %msg%n%throwable"/>
</File>
</Route>
<!--This route is chosen if ThreadContext has no value for key logFileName.-->
<Route key="${ctx:logFilePath}">
<File name="ConfigurationAppender" fileName="${log4j:configParentLocation}/../test-output/logs/configuration.log" immediateFlush="true" append="true">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%T] %t %-5level %logger{36} - %msg%n%throwable"/>
</File>
</Route>
</Routes>
</Routing>
</Appenders>
<Loggers>
<Root level="DEBUG">
<AppenderRef ref="RoutingAppender"/>
<AppenderRef ref="ConsoleAppender"/>
<AppenderRef ref="FileAppender"/>
</Root>
</Loggers>
</Configuration>
C помощью RoutingAppender я пишу логи каждого теста в отдельный файл. Тесты выполняются параллельно.
Хочется, чтобы в случае успешного выполнения теста, его лог файл удалялся. Если тест упал, то файл оставался.
Сейчас удалить файл программно после завершения теста, не получается, т.к. логгер держит файл и отпускает его только после завершения всего Suite и даже после onFinish(ISuite iSuite)
Как можно это сделать или какой другой подход выбрать?