AKKA Typed SLF4J NOP 警告

AKKA Typed SLF4J NOP warning

我正在使用 AKKA Typed 2.6.5 和 AKKA HTTP...

并低于错误

SLF4J:未找到 SLF4J 提供程序。 SLF4J:默认为无操作 (NOP) 记录器实现 SLF4J:有关详细信息,请参阅 http://www.slf4j.org/codes.html#noProviders

我已经导入了所有可能的 sbt 存储库并进行了测试,但日志记录仍然无法正常工作。 任何帮助将不胜感激。

您需要向 SLF4J 的实现添加依赖项 API。 SLF4J 只是一个接口,需要您提供您选择的实现,如 the documentation linked from the error message.

中所述

一个流行的实现是Logback。您可以通过将其添加到 libraryDependencies:

来将其包含在您的项目中
libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.2.3"

您可以通过在 src/main/resources/logback.xml 添加一个文件来配置它,其内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>myapp.log</file>
        <immediateFlush>false</immediateFlush>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>myapp_%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>
        <encoder>
            <pattern>[%date{ISO8601}] [%level] [%logger] [%marker] [%thread] - %msg MDC: {%mdc}%n</pattern>
        </encoder>
    </appender>

    <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
        <queueSize>8192</queueSize>
        <neverBlock>true</neverBlock>
        <appender-ref ref="FILE" />
    </appender>

    <root level="INFO">
        <appender-ref ref="ASYNC"/>
    </root>
</configuration>

您可以根据应用程序的需要对其进行配置。有关配置的详细信息,请参阅 Logback manual。请务必使用上面演示的异步附加程序,以便日志记录不会导致阻塞 I/O 在您的 Akka 调度程序线程上。

Akka 文档中有更多信息 https://doc.akka.io/docs/akka/current/typed/logging.html#slf4j-backend