我的logback.xml与Akka有什么问题?

时间:2015-01-14 22:31:58

标签: scala akka slf4j logback

为什么我的logback日志记录会被Akka阻塞?如果我单独留下Akka配置但删除了我的logback.xml文件,它可以解决任何默认设置的问题。我的logback.xml文件中是否存在配置错误?

logback.xml

<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <root level="ERROR">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

application.conf

akka {
    loglevel = "ERROR"
    stdout-loglevel = "ERROR"
    loggers = ["akka.event.slf4j.Slf4jLogger"]
    actor {
        provider = akka.remote.RemoteActorRefProvider
    }
    remote {
        enabled-transports = ["akka.remote.netty.tcp"]
    }
}

Build.scala(剪辑):

lazy val root = project.in(file("."))
    .settings(basicSettings: _*)
    .settings(libraryDependencies ++=
        dep_compile(
            typesafe_config, logback, akka_actor, akka_remote, akka_slf4j) ++ 
        dep_test(scalatest)
    )

当某些事情试图记录错误时,我得到:

error while starting up loggers
akka.ConfigurationException: Logger specified in config can't be loaded [akka.event.slf4j.Slf4jLogger] due to [akka.event.Logging$LoggerInitializationException: Logger log1-Slf4jLogger did not respond with LoggerInitialized, sent instead [TIMEOUT]]
    at akka.event.LoggingBus$$anonfun$4$$anonfun$apply$1.applyOrElse(Logging.scala:116)
    at akka.event.LoggingBus$$anonfun$4$$anonfun$apply$1.applyOrElse(Logging.scala:115)
    at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:33)
    at scala.util.Failure$$anonfun$recover$1.apply(Try.scala:185)
    at scala.util.Try$.apply(Try.scala:161)
...
Caused by: akka.event.Logging$LoggerInitializationException: Logger log1-Slf4jLogger did not respond with LoggerInitialized, sent instead [TIMEOUT]
    at akka.event.LoggingBus$class.akka$event$LoggingBus$$addLogger(Logging.scala:185)
    at akka.event.LoggingBus$$anonfun$4$$anonfun$apply$4.apply(Logging.scala:114)
    at akka.event.LoggingBus$$anonfun$4$$anonfun$apply$4.apply(Logging.scala:113)
    at scala.util.Success$$anonfun$map$1.apply(Try.scala:206)
    at scala.util.Try$.apply(Try.scala:161)
    at scala.util.Success.map(Try.scala:206)
    at akka.event.LoggingBus$$anonfun$4.apply(Logging.scala:113)
    ... 36 more

1 个答案:

答案 0 :(得分:1)

您在config中使用旧的记录器类。以下是如何解决它:

Akka (2.3.0) fails to load Slf4jEventHandler class with java.lang.ClassNotFoundException