我正在使用Jetty作为Web服务器并以编程方式启动它。该项目正在使用Gradle。对于日志记录,我使用sl4j和logback实现。
为了停止服务器,我使用org.eclipse.jetty.util.component.LifeCycle.
一切都在生产中完美。
但是,我的问题是,当我从gradle运行单元测试时,来自不同线程的Jetty关闭服务正在将INFO级别消息记录到STDOUT。这不应该发生,因为从[main]线程打印的所有其他INFO消息都不会显示。
理论上,只有在使用"--info"
启动gradle时,此INFO日志才会存在。
有谁知道为什么Gradle将Jetty INFO日志映射到STDOUT?
P.S。单元测试中没有用于logback的配置文件。
以下是运行时显示的第一条日志消息
gradle integrationTest
<code>11:30:25.553 [Thread-8] INFO org.eclipse.jetty.server.Server - Graceful shutdown SelectChannelConnector@0.0.0.0:8984</code>
答案 0 :(得分:0)
默认情况下,测试中打印到stdout的所有内容都以gradle格式打印出来。这让我相信,由于某种原因,来自另一个线程的INFO日志消息正在打印到stdout。你能核实是否是这种情况吗?
如果您不关心是否是这种情况并且您根本不想从test stdout中看到任何内容,那么有一种方法可以禁用Gradle中测试的所有输出:
integrationTest {
testLogging.showStandardStreams = false
}