我从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]
我有这些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"
在我升级之前使用Akka 2.2.3时,日志工作正常(项目中没有进行任何其他更改)。
以下是我在application.conf
中使用记录器的方法:
akka.loggers = ["akka.event.slf4j.Slf4jEventHandler"]
我已经检查过SBT下载的jar文件,而Slf4jEventHandler
只出现在旧版本中:
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
我想知道我是否应该使用其他一些记录器类,我是否缺少依赖项,或者它可能没有被错误打包。我在文档中找不到有关此更改的任何内容。
答案 0 :(得分:17)
我几乎开了一张票,因为我在文档here或here中找不到任何内容。但后来我发现这个ticket根据Slf4jEventHandler
被删除,因为它已被弃用。我跟进了这个搜索,发现scaladoc有这个弃用消息:“(从2.2版开始)使用akka.event.slf4j.Slf4jLogger)”。
我在application.conf
中更新了这一行:
akka.loggers = ["akka.event.slf4j.Slf4jEventHandler"]
到此:
akka.loggers = ["akka.event.slf4j.Slf4jLogger"]
这一切都奏效了。
我希望你觉得这个解决方案很有用。