Akka(2.3.0)无法使用java.lang.ClassNotFoundException加载Slf4jEventHandler类

yǝs*_*ǝla 11 logging scala akka

我从Akka 2.2.3迁移到2.3.0-RC4并在应用程序启动时收到此错误消息:

error while starting up loggers
akka.ConfigurationException: Logger specified in config can't be loaded 
[akka.event.slf4j.Slf4jEventHandler] due to
[java.lang.ClassNotFoundException: akka.event.slf4j.Slf4jEventHandler]
Run Code Online (Sandbox Code Playgroud)

我有这些SBT依赖项:

val akkaVersion = "2.3.0-RC4"
"com.typesafe.akka" % "akka-actor_2.10" % akkaVersion
"com.typesafe.akka" % "akka-remote_2.10" % akkaVersion
"com.typesafe.akka" % "akka-kernel_2.10" % akkaVersion
"com.typesafe.akka" % "akka-slf4j_2.10" % akkaVersion
"com.typesafe.akka" % "akka-testkit_2.10" % akkaVersion % "test"
Run Code Online (Sandbox Code Playgroud)

在我升级之前使用Akka 2.2.3版本时,日志工作正常(项目中没有进行任何其他更改).

以下是我在我的使用中使用logger的方法application.conf:

akka.loggers = ["akka.event.slf4j.Slf4jEventHandler"]
Run Code Online (Sandbox Code Playgroud)

我检查了SBT下载的jar文件Slf4jEventHandler,只出现在旧版本中:

  • 包含NO Slf4jEventHandler:~/.ivy2/cache/com.typesafe.akka/akka-slf4j_2.10/jars/akka-slf4j_2.10-2.3.0-RC4.jar
  • 包含Slf4jEventHandler:~/.ivy2/cache/com.typesafe.akka/akka-slf4j_2.10/jars/akka-slf4j_2.10-2.2.3.jar

我想知道我是否应该使用其他一些记录器类,我是否缺少依赖性,或者它可能没有被错误打包.我在文档中找不到有关此更改的任何内容.

yǝs*_*ǝla 17

我几乎开了一张票,因为我在这里这里的文档中找不到任何东西.但后来我发现这个,根据该Slf4jEventHandler被删除,因为它已被否决.我跟进了这个搜索,发现scaladoc有这个弃用消息:"(从版本2.2开始)使用akka.event.slf4j.Slf4jLogger)".

我更新了这一行application.conf:

akka.loggers = ["akka.event.slf4j.Slf4jEventHandler"]
Run Code Online (Sandbox Code Playgroud)

对此:

akka.loggers = ["akka.event.slf4j.Slf4jLogger"]
Run Code Online (Sandbox Code Playgroud)

这一切都奏效了.

我希望你发现这个解决方案很有用.