Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Log4j2-我是否可以为每个cucumberJVM测试创建一个单独的日志文件,其中日志文件名是场景的名称?_Java_Log4j2_Cucumber Jvm - Fatal编程技术网

Java Log4j2-我是否可以为每个cucumberJVM测试创建一个单独的日志文件,其中日志文件名是场景的名称?

Java Log4j2-我是否可以为每个cucumberJVM测试创建一个单独的日志文件,其中日志文件名是场景的名称?,java,log4j2,cucumber-jvm,Java,Log4j2,Cucumber Jvm,谢谢你抽出时间 任务:我正在使用cucumberJVM/Maven Surefire(forkCount)运行大量并行测试,在我的网格设置中同时运行大约15个以上的测试。对于我来说,每个Junit@Test(以Test方法作为日志名)和每个cucumberJVM场景是否可以有一个单独的日志文件来为自己创建日志 我不确定这是否可行,但这是我正在努力实现的目标,到目前为止,我有基本的日志记录,可以将所有内容写入一个.log文件,目前我正在大量阅读log4j2,但到目前为止,该网站势不可挡 我当前的l

谢谢你抽出时间

任务:我正在使用cucumberJVM/Maven Surefire(forkCount)运行大量并行测试,在我的网格设置中同时运行大约15个以上的测试。对于我来说,每个Junit@Test(以Test方法作为日志名)和每个cucumberJVM场景是否可以有一个单独的日志文件来为自己创建日志

我不确定这是否可行,但这是我正在努力实现的目标,到目前为止,我有基本的日志记录,可以将所有内容写入一个.log文件,目前我正在大量阅读log4j2,但到目前为止,该网站势不可挡

我当前的log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
  <Appenders>
    <File name="file" fileName="app.log">
      <PatternLayout>
        <Pattern>%d %p %c{1.} [%t] %m %ex%n</Pattern>
      </PatternLayout>
    </File>
    <Console name="STDOUT" target="SYSTEM_OUT">
      <PatternLayout pattern="%m%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Root level="trace">
      <AppenderRef ref="file" level="DEBUG"/>
      <AppenderRef ref="STDOUT" level="INFO"/>
    </Root>
  </Loggers>
</Configuration> 
我可以在@Before(hook)中获得以下运行场景:

这将返回特性和场景名称,仅此而已,在每个测试运行的最后添加一个.log将非常出色


这里非常感谢您的指导。

您可以尝试像我建议的那样的设置。您可以尝试像我建议的那样的设置。
package supportFactory;



import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;


public class LoggingFactory {


    public static Logger Log = LogManager.getLogger();                                   


    public void debug(String message) {
        Log.debug("DEBUG: " + message); 
    }

    public void info(String message) {
        Log.debug("INFO: " + message);
    }

    public void warn(String message) {
        Log.debug("WARNING: " + message);
    }

    public void error(String message) {
        Log.debug("ERROR: " + message);
    }

    public void fatal(String message) {
        Log.debug("FATAL: " + message);

    }

}
    TestRunner.scenario = scenario;
    System.out.println("Scenario: " + scenario.getId());