【问题标题】:SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder" in Kafka streamsSLF4J:无法在 Kafka 流中加载类“org.slf4j.impl.StaticLoggerBinder”
【发布时间】:2017-09-21 22:00:04
【问题描述】:

当我在 Kafka Streams 中运行 wordcount 之类的示例代码时出现以下错误:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

我访问了链接:https://www.slf4j.org/codes.html#StaticLoggerBinder 并尝试添加该链接中提到的 slf4j-nop.jar slf4j-simple.jar、slf4j-log4j12.jar、slf4j-jdk14.jar 之一。但它没有帮助。

我读到这个问题与 Eclipse 中的嵌入式 maven 版本有关,但我尝试从控制台创建项目,但仍然遇到同样的问题。

  • Kafka Streams 版本 - 0.11.0.0
  • Maven 版本 - 3.3.9

有人知道这个问题吗?我接下来的步骤是安装不同的 maven 版本并尝试一下。

【问题讨论】:

标签: maven apache-kafka-streams


【解决方案1】:

我在运行 maven 生成的 jar 中的任何 Kafka 流示例时遇到了同样的问题。在我看来,这是一个简单的编译/测试依赖问题。运行:

mvn dependency:tree

结果显示:

[INFO] +- org.apache.kafka:kafka-clients:jar:1.0.0-cp1:compile
[INFO] |  +- org.lz4:lz4-java:jar:1.4:compile
[INFO] |  +- org.xerial.snappy:snappy-java:jar:1.1.4:compile
[INFO] |  \- org.slf4j:slf4j-api:jar:1.7.25:compile
...
[INFO] +- io.confluent:common-utils:jar:4.0.0:compile
[INFO] \- org.slf4j:slf4j-log4j12:jar:1.7.25:test
[INFO]    \- log4j:log4j:jar:1.2.17:test

所以 slf4j-log4j12 jar 只包含在测试环境中。 我在 pom.xml 中添加了以下内容

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.25</version>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

重建 jar 并使用适当的 log4j 命令行参数运行,这些示例现在都使用日志记录。例如:

java -cp kafka-streams-examples-4.0.0-standalone.jar -Dlog4j.configuration=file:log4j.properties io.confluent.examples.streams.GlobalKTablesExample broker:9092 http://schema_registry:8081

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 2012-08-08
    • 2016-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多