Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Kafka使用者向控制台(ecilpse)输出过多的调试语句_Java_Logging_Apache Kafka_Log4j_Kafka Consumer Api - Fatal编程技术网

Java Kafka使用者向控制台(ecilpse)输出过多的调试语句

Java Kafka使用者向控制台(ecilpse)输出过多的调试语句,java,logging,apache-kafka,log4j,kafka-consumer-api,Java,Logging,Apache Kafka,Log4j,Kafka Consumer Api,我正在从运行一些示例代码,kafkaconsumer根据需要从主题中使用,但是每次轮询都会打印(到std out)许多调试日志,这是我不想要的 我在/config/log4j.properties中尝试将所有信息和调试更改为ERROR(甚至做了grep以确保),特别是设置log4j.logger.kafka=ERROR,kafkaAppender,但问题仍然存在。我在这里提到并采纳了解决方案,但对于消费者来说,情况可能有所不同 调试消息都具有类似的格式: [Thread-0] DEBUG org

我正在从运行一些示例代码,kafkaconsumer根据需要从主题中使用,但是每次轮询都会打印(到std out)许多调试日志,这是我不想要的

我在
/config/log4j.properties
中尝试将所有信息和调试更改为ERROR(甚至做了grep以确保),特别是设置
log4j.logger.kafka=ERROR
,kafkaAppender,但问题仍然存在。我在这里提到并采纳了解决方案,但对于消费者来说,情况可能有所不同

调试消息都具有类似的格式:

[Thread-0] DEBUG org.apache.kafka.clients.consumer.internals.Fetcher - Sending fetch for partitions... to broker... (id: 0 rack: null)
并且以每秒10次左右的速度出现(将投票参数改为1000甚至10000也没用,我试过了)

非常感谢任何专家的帮助。提前谢谢


编辑:不确定这是否重要,但我添加了
BasicConfigurator.configure()到我的主方法,以解决以前发生的阻止使用者启动的其他错误。

只需修改chatty类的日志记录级别(chatty交互)。 由于在您的日志中可以看到来自
org.apache.kafka.clients.consumer.internals.Fetcher
的日志条目,您只需将以下行添加到
log4j.properties
,即可调整该日志的日志记录级别:

log4j.logger.org.apache.kafka.clients.consumer.internals.Fetcher=WARN
。。。或任何更宽的捕捉记录器,因为它们是以名称间隔的:

# adjusting logging for entire Kafka
log4j.logger.org.apache.kafka=WARN

希望这有助于创建新的配置xml文件

src/main/resources/logback.xml


%d{HH:mm:ss.SSS}[%thread]-5级别%logger{36}-%msg%n

不确定您是否在谈论kafka控制台使用者命令,如果是,我就是这么做的:

[training@confluent-training-vm ~]$ cd /etc/kafka
[training@confluent-training-vm kafka]$ grep DEBUG *.properties
log4j.properties:# Change to DEBUG or TRACE to enable request logging
log4j.properties:# Access denials are logged at INFO level, change to DEBUG to also 
log allowed accesses
tools-log4j.properties:log4j.rootLogger=DEBUG, stderr
因此,您只需编辑
/etc/kafka/tools-log4j.properties
文件并删除
DEBUG
(或者将其替换为上行的
INFO
WARM
日志级别)

tools-log4j.properties:log4j.rootLogger=INFO, WARM, stderr

我在另一个与卡夫卡制作人有关的问题下找到了解决方案,但本质上是同一个问题:

因此,我在程序开始时只运行以下3行:

org.apache.log4j.Logger.getLogger("org").setLevel(Level.WARN);
org.apache.log4j.Logger.getLogger("akka").setLevel(Level.WARN);
org.apache.log4j.Logger.getLogger("kafka").setLevel(Level.WARN);

我最后使用了,我知道解决方案更通用(所有受影响的类)但也感谢您提供了具体的解决方案!我不知道为什么,但我基于我的答案的示例使用的是slf4j。但有趣的是,我只是使用了log4j,然后使用了下面的logback.xml,它起了作用:D!您的帖子帮助了我。我遇到了来自
卡夫卡控制台消费者的大量
警告
不间断消息,w通过运行这个命令,
输入kafka-run-class.bat | findstr/sin log4j.properties
,我发现它确实在使用
tools-log4j.properties
,并将这一行
log4j.rootLogger=WARN,stderr
修改为
log4j.rootLogger=ERROR,stderr
解决了我的问题。T汉克斯。
org.apache.log4j.Logger.getLogger("org").setLevel(Level.WARN);
org.apache.log4j.Logger.getLogger("akka").setLevel(Level.WARN);
org.apache.log4j.Logger.getLogger("kafka").setLevel(Level.WARN);