Я хочу создавать динамические файлы log4j2 во время выполнения.
Поэтому я инициализировал ArrayList и перебираю его.
Но это не работает. Я не могу решить это самостоятельно.
Что у меня так далеко:
log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<File name="logFile" fileName="temp/${ctx:fileName}.csv" append="false">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
</Appenders>
<Loggers>
<Root level="trace">
<AppenderRef ref="Console"/>
<AppenderRef ref="logFile"/>
</Root>
</Loggers>
</Configuration>
Java-код
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.ThreadContext;
import java.util.ArrayList;
import org.apache.logging.log4j.LogManager;
public class MyApp {
public static void main(String[] args) {
ArrayList<Logger> logger = new ArrayList<Logger>();
logger.add(LogManager.getLogger());
logger.add(LogManager.getLogger());
//logger.get(0).info("Test Test Test");
for (int i = 0; i < logger.size(); i++) {
ThreadContext.put("fileName", "Test_" + i);
logger.get(i).info("Test" + i);
}
}
}
Мне нужен отдельный файл журнала для каждого журнала.
Как мне этого добиться?
С наилучшими пожеланиями