Акка (2.3.0) не загружает класс Slf4jEventHandler с помощью java.lang.ClassNotFoundException
Я перенес из 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 непосредственно перед обновлением (никаких других изменений в проекте не было сделано).
Вот как я использую logger в своем application.conf
:
akka.loggers = ["akka.event.slf4j.Slf4jEventHandler"]
Я проверил файлы jar, загруженные SBT, и 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
Интересно, следует ли мне использовать какой-то другой класс logger, я пропущу зависимость, или, может быть, он не упакован по ошибке. Я не мог найти ничего в документах относительно этого изменения.
Ответы
Ответ 1
Я почти открыл билет, потому что я не нашел ничего в документации здесь или здесь. Но затем я нашел это ticket, в соответствии с которым Slf4jEventHandler
удаляется, поскольку он устарел. Я выполнил этот поиск и нашел scaladoc, у которого есть это сообщение об отказе: "(Начиная с версии 2.2) используйте akka.event.slf4j.Slf4jLogger)".
Я обновил эту строку в application.conf
:
akka.loggers = ["akka.event.slf4j.Slf4jEventHandler"]
:
akka.loggers = ["akka.event.slf4j.Slf4jLogger"]
и все это сработало.
Надеюсь, вы найдете это решение полезным.