diff --git a/internal/util-logging/src/main/scala/sbt/internal/util/BufferedLogger.scala b/internal/util-logging/src/main/scala/sbt/internal/util/BufferedLogger.scala index be24152c1..93686c334 100644 --- a/internal/util-logging/src/main/scala/sbt/internal/util/BufferedLogger.scala +++ b/internal/util-logging/src/main/scala/sbt/internal/util/BufferedLogger.scala @@ -116,7 +116,9 @@ class BufferedLogger(delegate: AbstractLogger) extends BasicLogger { /** Plays buffered events and disables buffering. */ def stop(): Unit = synchronized { play(); clear() } + @deprecated("No longer used.", "1.0.0") override def ansiCodesSupported = delegate.ansiCodesSupported + override def setLevel(newLevel: Level.Value): Unit = synchronized { super.setLevel(newLevel) if (recording) diff --git a/internal/util-logging/src/main/scala/sbt/internal/util/ConsoleAppender.scala b/internal/util-logging/src/main/scala/sbt/internal/util/ConsoleAppender.scala index 422e420fb..d6764463a 100644 --- a/internal/util-logging/src/main/scala/sbt/internal/util/ConsoleAppender.scala +++ b/internal/util-logging/src/main/scala/sbt/internal/util/ConsoleAppender.scala @@ -1,6 +1,5 @@ package sbt.internal.util -import scala.compat.Platform.EOL import sbt.util._ import java.io.{ PrintStream, PrintWriter } import java.util.Locale @@ -269,11 +268,16 @@ class ConsoleAppender private[ConsoleAppender] ( useFormat: Boolean, suppressedMessage: SuppressedTraceContext => Option[String] ) extends AbstractAppender(name, null, LogExchange.dummyLayout, true) { - import scala.Console.{ BLUE, GREEN, RED, RESET, YELLOW } + import scala.Console.{ BLUE, GREEN, RED, YELLOW } - private final val SUCCESS_LABEL_COLOR = GREEN - private final val SUCCESS_MESSAGE_COLOR = RESET - private final val NO_COLOR = RESET + private val reset: String = { + if (ansiCodesSupported && useFormat) scala.Console.RESET + else "" + } + + private val SUCCESS_LABEL_COLOR = GREEN + private val SUCCESS_MESSAGE_COLOR = reset + private val NO_COLOR = reset override def append(event: XLogEvent): Unit = { val level = ConsoleAppender.toLevel(event.getLevel) @@ -333,7 +337,7 @@ class ConsoleAppender private[ConsoleAppender] ( * @return The formatted message. */ private def formatted(format: String, msg: String): String = - s"${RESET}${format}${msg}${RESET}" + s"$reset${format}${msg}$reset" /** * Select the right color for the label given `level`. @@ -362,14 +366,14 @@ class ConsoleAppender private[ConsoleAppender] ( private def appendLog(labelColor: String, label: String, messageColor: String, message: String): Unit = out.lockObject.synchronized { message.lines.foreach { line => - val labeledLine = s"$RESET[${formatted(labelColor, label)}] ${formatted(messageColor, line)}" + val labeledLine = s"$reset[${formatted(labelColor, label)}] ${formatted(messageColor, line)}" write(labeledLine) } } private def write(msg: String): Unit = { val cleanedMsg = - if (!useFormat) EscHelpers.removeEscapeSequences(msg) + if (!useFormat || !ansiCodesSupported) EscHelpers.removeEscapeSequences(msg) else msg out.println(cleanedMsg) } diff --git a/internal/util-logging/src/main/scala/sbt/internal/util/FullLogger.scala b/internal/util-logging/src/main/scala/sbt/internal/util/FullLogger.scala index 1493e2d0f..c3ad40442 100644 --- a/internal/util-logging/src/main/scala/sbt/internal/util/FullLogger.scala +++ b/internal/util-logging/src/main/scala/sbt/internal/util/FullLogger.scala @@ -7,7 +7,9 @@ import sbt.util._ /** Promotes the simple Logger interface to the full AbstractLogger interface. */ class FullLogger(delegate: Logger) extends BasicLogger { + @deprecated("No longer used.", "1.0.0") override val ansiCodesSupported: Boolean = delegate.ansiCodesSupported + def trace(t: => Throwable): Unit = { if (traceEnabled) delegate.trace(t) diff --git a/internal/util-logging/src/main/scala/sbt/internal/util/ManagedLogger.scala b/internal/util-logging/src/main/scala/sbt/internal/util/ManagedLogger.scala index a0b69929c..5f284a77a 100644 --- a/internal/util-logging/src/main/scala/sbt/internal/util/ManagedLogger.scala +++ b/internal/util-logging/src/main/scala/sbt/internal/util/ManagedLogger.scala @@ -54,5 +54,7 @@ class ManagedLogger( new ObjectMessage(entry) ) } + + @deprecated("No longer used.", "1.0.0") override def ansiCodesSupported = ConsoleAppender.formatEnabledInEnv } diff --git a/internal/util-logging/src/main/scala/sbt/internal/util/MultiLogger.scala b/internal/util-logging/src/main/scala/sbt/internal/util/MultiLogger.scala index c72d094af..ef82fa10f 100644 --- a/internal/util-logging/src/main/scala/sbt/internal/util/MultiLogger.scala +++ b/internal/util-logging/src/main/scala/sbt/internal/util/MultiLogger.scala @@ -9,8 +9,8 @@ import sbt.util._ // note that setting the logging level on this logger has no effect on its behavior, only // on the behavior of the delegates. class MultiLogger(delegates: List[AbstractLogger]) extends BasicLogger { + @deprecated("No longer used.", "1.0.0") override lazy val ansiCodesSupported = delegates exists supported - private[this] lazy val allSupportCodes = delegates forall supported private[this] def supported = (_: AbstractLogger).ansiCodesSupported override def setLevel(newLevel: Level.Value): Unit = { @@ -31,22 +31,8 @@ class MultiLogger(delegates: List[AbstractLogger]) extends BasicLogger { def logAll(events: Seq[LogEvent]): Unit = delegates.foreach(_.logAll(events)) def control(event: ControlEvent.Value, message: => String): Unit = delegates.foreach(_.control(event, message)) private[this] def dispatch(event: LogEvent): Unit = { - val plainEvent = if (allSupportCodes) event else removeEscapes(event) - for (d <- delegates) - if (d.ansiCodesSupported) - d.log(event) - else - d.log(plainEvent) - } - - private[this] def removeEscapes(event: LogEvent): LogEvent = - { - import EscHelpers.{ removeEscapeSequences => rm } - event match { - case s: Success => new Success(rm(s.msg)) - case l: Log => new Log(l.level, rm(l.msg)) - case ce: ControlEvent => new ControlEvent(ce.event, rm(ce.msg)) - case _: Trace | _: SetLevel | _: SetTrace | _: SetSuccess => event - } + for (d <- delegates) { + d.log(event) } + } } diff --git a/internal/util-logging/src/main/scala/sbt/util/Logger.scala b/internal/util-logging/src/main/scala/sbt/util/Logger.scala index abcad3428..0bcea3b78 100644 --- a/internal/util-logging/src/main/scala/sbt/util/Logger.scala +++ b/internal/util-logging/src/main/scala/sbt/util/Logger.scala @@ -27,6 +27,7 @@ abstract class Logger extends xLogger { // sys.process.ProcessLogger final def out(message: => String): Unit = log(Level.Info, message) + @deprecated("No longer used.", "1.0.0") def ansiCodesSupported: Boolean = false def trace(t: => Throwable): Unit