当我在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版本,但我尝试从控制台创建项目,但我仍遇到同样的问题。
是否有人意识到这个问题?我接下来的步骤是安装不同的maven版本并试一试。
答案 0 :(得分:2)
我在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