Log4j2 Java - динамические файлы журнала с циклом for - PullRequest
0 голосов
/ 11 сентября 2018

Я хочу создавать динамические файлы 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);

        }

    }
}

Мне нужен отдельный файл журнала для каждого журнала. Как мне этого добиться?

С наилучшими пожеланиями

...