您可以使用Logback的SiftingAppender。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="SIFTER" class="ch.qos.logback.classic.sift.SiftingAppender">
<discriminator>
<key>testName</key>
<defaultValue>UNKNOWN</defaultValue>
</discriminator>
<sift>
<appender name="FILE-${testName}" class="ch.qos.logback.core.FileAppender">
<file>test-${testName}.log</file>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>...</pattern>
</layout>
</appender>
</sift>
</appender>
<root level="ALL">
<appender-ref ref="SIFTER" />
</root>
</configuration>
将testName
的值代入到日志文件名中。您通过org.slf4j.MDC
设置testName
。例如;
String testName = "...";
MDC.put("testName", testName);
// run your test
// ...
// remove the test name from MDC ready for the next test to set its own name
MDC.remove("testName");
你可以使用JUnit4的TestName Rule获得当前的测试名称,然后把/在@Before
,@After
方法去除。
嘿故障,感谢您的评论,让我试试这个到我的代码库,看看它的行为,我会尽快回到你身边。问候, –
嘿小故障,这是完美的人,谢谢。我没有意识到SiftingAppender,但现在我已经排序了。再次感谢您 –
不客气 – glytching