summaryrefslogtreecommitdiff
path: root/main/core/src
diff options
context:
space:
mode:
Diffstat (limited to 'main/core/src')
-rw-r--r--main/core/src/eval/Evaluator.scala12
-rw-r--r--main/core/src/util/Loggers.scala18
2 files changed, 27 insertions, 3 deletions
diff --git a/main/core/src/eval/Evaluator.scala b/main/core/src/eval/Evaluator.scala
index dbaf9433..71fe85a9 100644
--- a/main/core/src/eval/Evaluator.scala
+++ b/main/core/src/eval/Evaluator.scala
@@ -251,7 +251,7 @@ case class Evaluator(home: os.Path,
val nonEvaluatedTargets = group.indexed.filterNot(results.contains)
- maybeTargetLabel.foreach { targetLabel =>
+ val tickerPrefix = maybeTargetLabel.map { targetLabel =>
val inputResults = for {
target <- nonEvaluatedTargets
item <- target.inputs.filterNot(group.contains)
@@ -259,10 +259,16 @@ case class Evaluator(home: os.Path,
val logRun = inputResults.forall(_.isInstanceOf[Result.Success[_]])
- if(logRun) { log.ticker(s"[$counterMsg] $targetLabel ") }
+ val prefix = s"[$counterMsg] $targetLabel "
+ if(logRun) log.ticker(prefix)
+ prefix + "| "
}
- val multiLogger = resolveLogger(paths.map(_.log))
+ val multiLogger = new ProxyLogger(resolveLogger(paths.map(_.log))) {
+ override def ticker(s: String): Unit = {
+ super.ticker(tickerPrefix.getOrElse("")+s)
+ }
+ }
var usedDest = Option.empty[(Task[_], Array[StackTraceElement])]
for (task <- nonEvaluatedTargets) {
newEvaluated.append(task)
diff --git a/main/core/src/util/Loggers.scala b/main/core/src/util/Loggers.scala
index aab1a324..4771d782 100644
--- a/main/core/src/util/Loggers.scala
+++ b/main/core/src/util/Loggers.scala
@@ -188,3 +188,21 @@ case class MultiLogger(colored: Boolean, logger1: Logger, logger2: Logger) exten
logger2.close()
}
}
+
+/**
+ * A Logger that forwards all logging to another Logger. Intended to be
+ * used as a base class for wrappers that modify logging behavior.
+ */
+case class ProxyLogger(logger: Logger) extends Logger {
+ def colored = logger.colored
+
+ lazy val outputStream = logger.outputStream
+ lazy val errorStream = logger.errorStream
+ lazy val inStream = logger.inStream
+
+ def info(s: String) = logger.info(s)
+ def error(s: String) = logger.error(s)
+ def ticker(s: String) = logger.ticker(s)
+ def debug(s: String) = logger.debug(s)
+ override def close() = logger.close()
+}