我正在编写一段代码,尝试使用 kafka 和 SBT 生成消息。它可以编译,但是当使用 SBT 运行时,出现此错误。
log4j:WARN No appenders could be found for logger (org.apache.kafka.clients.producer.ProducerConfig).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
我上网查看,发现在我的类路径中找不到 log4j.properties。所以我进入文件夹
etc/sbt
并修改文件sbtconfig.txt
。我在里面添加了这个
-Dlog4j.configuration=file:/home/hduser/kafka_2.11-2.1.0/config/log4j.properties
-Dkafka.logs.dir=/home/hduser/kafka_2.11-2.1.0/logs
我尝试再次运行该任务,但不断收到相同的错误。
如何解决这个问题?
在这种情况下,您需要在资源文件夹中创建一个 log4j.xml 文件。
<log4j:configuration debug="false">
<!--Console appender -->
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %p %m%n"/>
</layout>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="stdout"/>
</root> </log4j:configuration>
在资源文件夹中创建此文件并命名为 log4j.xml。它将解决问题。