4

我在我的项目 IntelliJ IDEA 作为 IDE 上使用Serenity BDD进行测试自动化。我想更改每次运行测试时可以看到的日志的格式和调试级别。

例如,我只想查看来自 [main] 线程的日志:

[main] INFO net.thucydides.core.reports.junit.JUnitXMLOutcomeReport
[pool-3-thread-1] INFO net.thucydides.core.reports.ReportService - 

我知道如何为 logback 执行此操作,但我找不到任何有关如何以及在何处更改 Serenity 的日志设置的信息。

4

1 回答 1

2

输出是由您正在测试的代码而不是 Serenity BDD 生成的。因此,为了修改输出,您应该更改您使用的记录器的日志记录属性。

slf4j 是一个日志外观,它找到适当的记录器并将输出重定向到它。因此,您需要将记录器添加到您的应用程序中,然后按照您喜欢的方式对其进行配置。

例如,将 logback 添加到您的配置中。

将它作为依赖项添加到项目中

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.1.3</version>
</dependency>

添加src/test/resources/logback-test.xml以指导应该记录哪些 logback。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %-5level %logger{36} - %msg%n
            </Pattern>
        </layout>
    </appender>

    <!-- set DEBUG logging level for a package -->
    <logger name="com.my.package" level="debug">

    <!-- log warnings and errors by default -->
    <root level="warn">
        <appender-ref ref="STDOUT" />
    </root>

</configuration>

此配置会将警告和错误记录到控制台。并且还将记录 package 的调试和信息消息com.my.package

如果您不喜欢 logback,请使用 log4j2 或您选择的任何其他记录器。

于 2015-10-04T09:11:06.180 回答