scala - 我的 logback.xml 和 Akka 有什么问题?

标签 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>

应用程序.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

最佳答案

您在配置中使用旧的记录器类。以下是修复方法:

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

关于scala - 我的 logback.xml 和 Akka 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27953670/

相关文章:

Scala:在类型别名不匹配时强制编译错误

java - Akka Actor 和消息处理

java - Play 2.5 akka.actor.ActorSystem isTermination 方法已弃用

java - Maven 插件构建但无法执行,因为 java.lang.NoClassDefFoundError : org/slf4j/LoggerFactory

arrays - Spark 卡拉: Convert Array of Struct column to String column

scala - 如何使用Scala从Internet下载和保存文件?

java - Predictionio pio 构建成功,但 pio 训练错误,未找到 'name'

scala - Akka-Http:如何测试一个请求

java - SLF4J 不使用 jcl-over-slf4j 记录公共(public)资源

logging - 如何使用格式、参数和抛出进行日志记录?