Log4j2 Java-带for循环的动态日志文件

时间:2018-09-11 14:36:08

标签: java file logging dynamic log4j

我想在运行时创建动态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);

        }

    }
}

我想要的是每个日志的单独日志文件。 我该如何实现?

最好的问候

0 个答案:

没有答案