diff options
Diffstat (limited to 'main/core/src')
-rw-r--r-- | main/core/src/eval/Evaluator.scala | 12 | ||||
-rw-r--r-- | main/core/src/util/Loggers.scala | 18 |
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() +} |