From 592086b889fa998abc436139c3ffb52153049db9 Mon Sep 17 00:00:00 2001 From: Adrien Piquerez Date: Thu, 4 Aug 2022 15:59:25 +0200 Subject: [PATCH] Don't use ProxyTerminal in background job If we use the ProxyTerminal in the background jobs, the logs would be spread across different terminals, switching from active client to active client. We want the logs to stick to the client that started the job. --- .../src/main/scala/sbt/internal/util/Terminal.scala | 1 + main/src/main/scala/sbt/internal/LogManager.scala | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/util-logging/src/main/scala/sbt/internal/util/Terminal.scala b/internal/util-logging/src/main/scala/sbt/internal/util/Terminal.scala index 0019b04e9..27b1e29c4 100644 --- a/internal/util-logging/src/main/scala/sbt/internal/util/Terminal.scala +++ b/internal/util-logging/src/main/scala/sbt/internal/util/Terminal.scala @@ -438,6 +438,7 @@ object Terminal { override def toString: String = s"ProxyTerminal(current = $t)" } private[sbt] def get: Terminal = ProxyTerminal + private[sbt] def current: Terminal = activeTerminal.get private[sbt] def withIn[T](in: InputStream)(f: => T): T = { val original = inputStream.get diff --git a/main/src/main/scala/sbt/internal/LogManager.scala b/main/src/main/scala/sbt/internal/LogManager.scala index 7029cde2e..8612c692b 100644 --- a/main/src/main/scala/sbt/internal/LogManager.scala +++ b/main/src/main/scala/sbt/internal/LogManager.scala @@ -149,7 +149,7 @@ object LogManager { task: ScopedKey[_], context: LoggerContext ): ManagedLogger = { - val console = screen(task, state) + val console = ConsoleAppender("bg-" + ConsoleAppender.generateName(), ITerminal.current) LogManager.backgroundLog(data, state, task, console, relay(()), context) } }