Typed testkit: log capture logger initalisation
This commit is contained in:
parent
de59bb6803
commit
5fb177eea4
1 changed files with 12 additions and 3 deletions
|
|
@ -6,9 +6,10 @@ package akka.actor.testkit.typed.internal
|
|||
|
||||
import org.slf4j.LoggerFactory
|
||||
import org.slf4j.event.Level
|
||||
|
||||
import akka.annotation.InternalApi
|
||||
|
||||
import scala.annotation.tailrec
|
||||
|
||||
/**
|
||||
* INTERNAL API
|
||||
*/
|
||||
|
|
@ -16,9 +17,17 @@ import akka.annotation.InternalApi
|
|||
def loggerNameOrRoot(loggerName: String): String =
|
||||
if (loggerName == "") org.slf4j.Logger.ROOT_LOGGER_NAME else loggerName
|
||||
|
||||
def getLogbackLogger(loggerName: String): ch.qos.logback.classic.Logger = {
|
||||
def getLogbackLogger(loggerName: String): ch.qos.logback.classic.Logger =
|
||||
getLogbackLoggerInternal(loggerName, 50)
|
||||
|
||||
@tailrec
|
||||
private def getLogbackLoggerInternal(loggerName: String, count: Int): ch.qos.logback.classic.Logger = {
|
||||
LoggerFactory.getLogger(loggerNameOrRoot(loggerName)) match {
|
||||
case logger: ch.qos.logback.classic.Logger => logger
|
||||
case logger: ch.qos.logback.classic.Logger => logger
|
||||
case _: org.slf4j.helpers.SubstituteLogger if count > 0 =>
|
||||
// Wait for logging initialisation http://www.slf4j.org/codes.html#substituteLogger
|
||||
Thread.sleep(50)
|
||||
getLogbackLoggerInternal(loggerName, count - 1)
|
||||
case null =>
|
||||
throw new IllegalArgumentException(s"Couldn't find logger for [$loggerName].")
|
||||
case other =>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue