您可以使用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