From 5ac9390be6b9c7df5b18ce1500ed1618a3f1bad6 Mon Sep 17 00:00:00 2001 From: Mark Harrah Date: Wed, 2 Oct 2013 09:10:38 -0400 Subject: [PATCH] TrapExit support for multiple, concurrent managed applications. Fixes #831. --- util/log/src/main/scala/sbt/Logger.scala | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/util/log/src/main/scala/sbt/Logger.scala b/util/log/src/main/scala/sbt/Logger.scala index 29d965e76..ce8201e9c 100644 --- a/util/log/src/main/scala/sbt/Logger.scala +++ b/util/log/src/main/scala/sbt/Logger.scala @@ -57,7 +57,11 @@ object Logger implicit def absLog2PLog(log: AbstractLogger): ProcessLogger = new BufferedLogger(log) with ProcessLogger implicit def log2PLog(log: Logger): ProcessLogger = absLog2PLog(new FullLogger(log)) - implicit def xlog2Log(lg: xLogger): Logger = new Logger { + implicit def xlog2Log(lg: xLogger): Logger = lg match { + case l: Logger => l + case _ => wrapXLogger(lg) + } + private[this] def wrapXLogger(lg: xLogger): Logger = new Logger { override def debug(msg: F0[String]): Unit = lg.debug(msg) override def warn(msg: F0[String]): Unit = lg.warn(msg) override def info(msg: F0[String]): Unit = lg.info(msg)