我正在从 log4j 切换到 log4j2 并顺利转换了所有内容,但以下情况除外。在我的代码中,我有一个将文本输出到文件的测试引擎。我正在使用 log4j2 来处理日志记录。我想为每个测试创建一个单独的日志文件,文件的名称是测试名称。
例如,test1 将输出到 test1.log,而 test2 将输出到 test2.log。这在 log4j 中是可能的,通过使用这个代码......
private Category testOutput = Category.getInstance("ModelTestOutput");
FileAppender outFile = new FileAppender(new PatternLayout("%m%n"), fileName, false);
testOutput.addAppender(outFile);
但是,我似乎找不到与之匹配的新 log4j2 模式。
我目前是这样设置的...
protected Logger testOutput = LogManager.getLogger();
//unknown function to tailor the output file name
//something similar to above, like testOutput.addAppender()
并在 log4j2.xml 文件中
<property name="test-file">test.log</property>
<appender type="File" name="TestLog" fileName="${test-path}${test-file}">
<layout type="PatternLayout" pattern="%m%n"></layout>
</appender>
<logger name="tester.fvt" level="DEBUG" additivity="false">
<appender-ref ref="TestLog" />
</logger>