如何更改 serenity-bdd 日志设置

How can I change serenity-bdd log settings

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

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

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

我知道如何为 logback 做这件事,但我找不到任何关于应该如何以及在何处更改 Serenity 的日志设置的信息。

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

slf4j 是一个日志外观,它会找到合适的记录器并将输出重定向到它。所以你需要在你的应用程序中添加一个记录器,然后按照你喜欢的方式配置它。

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

将它的 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>

此配置会将警告和错误记录到控制台。并且还将记录包 com.my.package.

的调试和信息消息

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