gpt4 book ai didi

java - 如何在 Ant JUnit Task 中设置额外的 Java Logger FileHandler?

转载 作者:行者123 更新时间:2023-11-29 09:18:10 26 4
gpt4 key购买 nike

我有一个奇怪的任务。给出了以下(剥离的)代码(但我无法更改/增强它):

public class CustomTestClass {

/**
* Logger.
*/
private Logger logger = Logger.getLogger("com.custom.testing");

@Test
public void simpleTestCaseOne(){
logger.warning("simpleTestCaseOne: Not yet implemented!");
assertTrue(true);
}

@Test
public void simpleTestCaseTwo(){
logger.warning("simpleTestCaseTwo: Not yet implemented!");
assertTrue(true);
}
}



现在我使用以下 Ant-Code 来运行测试:

<target name="Junit_Test" 
depends="compile.test" description="Custom TestCase Runner">
<junit printsummary="yes" haltonfailure="no" fork="yes">
<jvmarg value="-Djava.util.logging.config.file=res/logging.properties" />
<classpath>
<path refid="tests.class.path" />
<fileset dir="${src.tests}">
<include name="**/*Test*.java"/>
</fileset>
</classpath>
<test name="com.custom.testing.CustomTestClass"
haltonfailure="no"
todir="${reports.tests}/xml"
methods="simpleTestCaseOne" >
<formatter type="xml" />
</test>
</junit>
</target>

logging.properties 文件只定义了 ConsoleHandlerFileHandler 和 TestClass 记录器的输出文件。

当我运行 ant 脚本时,它实际上工作正常,但我需要重新运行测试几次并每次更改 FileHandler 的输出文件。

是否可以在不更改代码的情况下为指定的 Logger 添加/更改 FileHandler?

最佳答案

我不是特别喜欢这个,但是...

您可以在属性 java.util.logging.FileHandler.pattern 的值中创建一个带有可替换标记的日志记录配置文件,例如

java.util.logging.FileHandler.pattern=%h/logs/@LOGFILE@.log

然后你可以使用 Ant copy taskfilterset替换 token ,例如

<copy file="res/logging_tmp.properties" toFile="res/logging.properties" force="true">
<filterset>
<filter token="LOGFILE" value="your_value"/>
</filterset>
</copy>

您将在每次执行单元测试之前进行复制,每次指定不同的值。

关于java - 如何在 Ant JUnit Task 中设置额外的 Java Logger FileHandler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8167117/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com