当前位置: 首页 > 知识库问答 >
问题:

akka-http在添加SLF4J/logback时崩溃

茅星华
2023-03-14

我有一个工作的akka-http应用程序。现在,我尝试通过slf4j和logback添加日志记录,但我的应用程序崩溃了。

build.sbt

libraryDependencies ++= Seq(
  "com.typesafe.akka" %% "akka-http" % "10.0.7",
  "ch.qos.logback" % "logback-classic" % "1.2.3",
  "com.typesafe.akka" %% "akka-slf4j" % "2.5.2"
)
akka {
  loggers = ["akka.event.slf4j.Slf4jLogger"]
  loglevel = "DEBUG"
  logging-filter = "akka.event.slf4j.Slf4jLoggingFilter"
}
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">

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

    <root level="DEBUG">
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>

从线程[my-system-akka.actor.default-dispatcher-6]中未捕获错误,因为对ActorSystem[my-system]java.lang.nosuchMethoderRror启用了“akka.jvm-exit-on-fatal-error”,正在关闭JVM:akka.actor.actorCell.AddFunctionRef(LScala/Function2;)lakka/actor/FunctionRef;

根据消息,这是一个兼容性问题。如何查找akka-httpakka-slf4j的哪些版本是兼容的(试用除外)?

另外一个注意事项是,由于这是一个类似的问题:我想添加akka-stream。但是,使用最新版本的akka-httpakka-stream会在SBT中给出驱逐警告。同样的问题:我如何找到使用哪些版本?

共有1个答案

宋凌龙
2023-03-14

不幸的是,akka-http的版本与akka的其他版本是分开的,它的最新版本不一定使用akka的最新版本。对于akka-http版本10.0.7的情况,兼容的akka版本为2.4.18。你可以在这里看到。这意味着您需要在akka-slf4j依赖项中下降到该版本,以运行应用程序而不会出现问题。

 类似资料:
  • Overview Slf4j已经成为Logger的事实标准API, 它只是一个外壳,而与Commons-Logging比,最突出的一点是大部分情况下它不需要写类似下面的代码。 if(logger.isInfoEnabled()){ logger.info("hello " + name); } 而后面的实现方面,java.util.logging, log4j ,log

  • 我正试图把我的头围绕在所有不同的日志记录工具(log4j、slf4j、logback、jcl等)和它们都做的事情上。 我知道slf4j是不同日志记录工具的一个门面,它使任何日志记录工具之间的切换变得很容易。但到了日志的话题,我就一头雾水了。我知道logback是log4j的后继者,在这篇文章中,它使用了“natively implements”这个词;那到底是什么意思。从我的理解是,日志与SLF4

  • 我正在为我的应用程序部署一个spring boot可执行jar。我使用SLF4J日志记录,当我在IntelliJ内部构建和运行时,我没有任何问题。 然而,当我尝试运行.jar时,从命令行我得到一个LoggerFactory不是Logback LoggerContext,而是Logback在类路径异常上。 它在两个地方抱怨slf4j-log4j12-1.7.12.jar。 如果我从这两个位置移除ja

  • 我在wildfly8中运行web应用程序,但由于某些原因,它没有登录。我使用SLF4J与日志。日志文件是在部署时创建的,但它是空的。我在wildfly日志中也看不到我的日志语句。 该类包含: null 在我看来,LOGBACK配置成功。但日志消息会丢失。知道那里会发生什么吗?这让我毫无意义。

  • 关于如何解决此错误的建议,以便我可以使用最新版本的akka、akka streams和akka HTTP?谢了!

  • 我刚开始使用Mule,我已经安装了Mule Studio3.5.0 for Windows。从Hep安装maven插件时-->安装新软件-->m2eclipse更新站点-http://download.eclipse.org/technolog...我出现了跟踪错误。