1

我使用 Jetty 作为 Web 服务器并以编程方式启动它。该项目正在使用 Gradle。对于日志记录,我使用带有 logback 实现的 sl4j。为了停止服务器,我org.eclipse.jetty.util.component.LifeCycle.在生产中使用了 Everything works perfect。

但是,我的问题是,当我从 gradle 运行单元测试时,来自不同线程的 Jetty 关闭服务正在将 INFO 级别的消息记录到 STDOUT。这不应该发生,因为从 [main] 线程打印的所有其他 INFO 消息都没有显示。

理论上,这个 INFO 日志应该只在 gradle 以"--info".

有谁知道 Gradle 为什么将 Jetty INFO 日志映射到 STDOUT?

PS 在单元测试中没有用于 logback 的配置文件。

这是运行时显示的第一条日志消息

gradle 集成测试

<code>11:30:25.553 [Thread-8] INFO org.eclipse.jetty.server.Server - Graceful shutdown SelectChannelConnector@0.0.0.0:8984</code>
4

1 回答 1

0

默认情况下,在测试中打印到标准输出的所有内容都以 gradle 的形式打印出来。这让我相信,出于某种原因,您来自另一个线程的 INFO 日志消息正在打印到标准输出。你能确认是不是这样吗?

如果您不在乎是否是这种情况,并且您根本不想从测试标准输出中看到任何内容,那么有一种方法可以禁用 Gradle 中测试的所有输出:

integrationTest {
    testLogging.showStandardStreams = false
}
于 2013-05-08T13:34:35.450 回答