From 434e294f2849426888a49be4fa2d1b88931af0e8 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Wed, 27 Jun 2018 06:36:47 -0400 Subject: [PATCH] Fixes the stacktrace trimming Ref https://github.com/sbt/sbt/issues/4121 Ref https://github.com/sbt/sbt/pull/4232 --- .../scala/sbt/internal/util/ConsoleAppender.scala | 2 +- .../main/scala/sbt/internal/util/MainLogging.scala | 11 ++++++++--- .../src/main/scala/sbt/internal/util/StackTrace.scala | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) 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 b0f68e88a..3e1d07da5 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 @@ -421,7 +421,7 @@ class ConsoleAppender private[ConsoleAppender] ( } private def appendTraceEvent(te: TraceEvent): Unit = { - val traceLevel = getTrace + val traceLevel = if (getTrace < 0) Int.MaxValue else getTrace val throwableShowLines: ShowLines[Throwable] = ShowLines[Throwable]((t: Throwable) => { List(StackTrace.trimmed(t, traceLevel)) diff --git a/internal/util-logging/src/main/scala/sbt/internal/util/MainLogging.scala b/internal/util-logging/src/main/scala/sbt/internal/util/MainLogging.scala index 2a47587b0..0ddc357e6 100644 --- a/internal/util-logging/src/main/scala/sbt/internal/util/MainLogging.scala +++ b/internal/util-logging/src/main/scala/sbt/internal/util/MainLogging.scala @@ -13,15 +13,20 @@ object MainAppender { def multiLogger(log: ManagedLogger, config: MainAppenderConfig): ManagedLogger = { import config._ // TODO - // console setTrace screenTrace // backed setTrace backingTrace // multi: Logger - // val log = LogExchange.logger(loggerName) LogExchange.unbindLoggerAppenders(log.name) LogExchange.bindLoggerAppenders( log.name, - (consoleOpt.toList map { _ -> screenLevel }) ::: + (consoleOpt.toList map { appender => + appender match { + case a: ConsoleAppender => + a.setTrace(screenTrace) + case _ => () + } + appender -> screenLevel + }) ::: List(backed -> backingLevel) ::: (extra map { x => (x -> Level.Info) diff --git a/internal/util-logging/src/main/scala/sbt/internal/util/StackTrace.scala b/internal/util-logging/src/main/scala/sbt/internal/util/StackTrace.scala index 66468e2d5..58888e8be 100644 --- a/internal/util-logging/src/main/scala/sbt/internal/util/StackTrace.scala +++ b/internal/util-logging/src/main/scala/sbt/internal/util/StackTrace.scala @@ -4,7 +4,7 @@ package sbt.internal.util object StackTrace { - def isSbtClass(name: String) = name.startsWith("sbt") || name.startsWith("xsbt") + def isSbtClass(name: String) = name.startsWith("sbt.") || name.startsWith("xsbt.") /** * Return a printable representation of the stack trace associated