【发布时间】:2020-05-31 06:18:41
【问题描述】:
我正在使用 AKKA Typed 2.6.5 和 AKKA HTTP...
并低于错误
SLF4J:未找到 SLF4J 提供程序。 SLF4J:默认为无操作(NOP)记录器实现 SLF4J:详情请见http://www.slf4j.org/codes.html#noProviders。
我已导入所有可能的 sbt 存储库并进行了测试,但日志仍然无法正常工作。 任何帮助将不胜感激。
【问题讨论】:
我正在使用 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。请务必使用上面演示的异步附加程序,这样日志记录不会导致 Akka 调度程序线程上的 I/O 阻塞。
在https://doc.akka.io/docs/akka/current/typed/logging.html#slf4j-backend 的 Akka 文档中有更多信息
【讨论】: