mirror of https://github.com/sbt/sbt.git
Merge pull request #104 from eed3si9n/wip/logging
Filter out color in CosoleAppender only
This commit is contained in:
commit
4b57f852b1
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -54,5 +54,7 @@ class ManagedLogger(
|
|||
new ObjectMessage(entry)
|
||||
)
|
||||
}
|
||||
|
||||
@deprecated("No longer used.", "1.0.0")
|
||||
override def ansiCodesSupported = ConsoleAppender.formatEnabledInEnv
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue