如何更改 serenity-bdd 日志设置

Pau*_*aul 5 logging log4j thucydides serenity-bdd

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

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

[main] INFO net.thucydides.core.reports.junit.JUnitXMLOutcomeReport
[pool-3-thread-1] INFO net.thucydides.core.reports.ReportService - 
Run Code Online (Sandbox Code Playgroud)

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

div*_*nov 3

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

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

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

将其 logback 添加为项目的依赖项

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.1.3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

添加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>
Run Code Online (Sandbox Code Playgroud)

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

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