Merge pull request #6128 from eatkins/logger-thunk

Only evaluate log message thunk once
This commit is contained in:
Ethan Atkins 2020-11-19 16:03:07 -08:00 committed by GitHub
commit 68933a628d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 4 deletions

View File

@ -116,11 +116,13 @@ object LoggerContext {
private class Log extends MiniLogger {
private val consoleAppenders: java.util.Vector[(Appender, Level.Value)] =
new java.util.Vector
def log(level: Level.Value, message: => String): Unit =
consoleAppenders.forEach {
case (a, l) =>
if (level.compare(l) >= 0) a.appendLog(level, message)
def log(level: Level.Value, message: => String): Unit = {
val toAppend = consoleAppenders.asScala.filter { case (a, l) => level.compare(l) >= 0 }
if (toAppend.nonEmpty) {
val m = message
toAppend.foreach { case (a, l) => a.appendLog(level, m) }
}
}
def log[T](level: Level.Value, message: ObjectEvent[T]): Unit = {
consoleAppenders.forEach {
case (a, l) =>