Kafka Consumer outputs excessive DEBUG statements to console (ecilpse)

喜欢而已 提交于 2019-12-05 20:50:11

问题


I'm running some sample code from http://www.javaworld.com/article/3060078/big-data/big-data-messaging-with-kafka-part-1.html?page=2, and the kafkaconsumer is consuming from topic as desired, but every poll results in print (to std out) of many debug logs, which I don't want.

I have tried changing all INFO and DEBUG to ERROR (even did a grep to make sure) in /config/log4j.properties, in particular setting log4j.logger.kafka=ERROR, kafkaAppender, but the problem persists. I referred to How to configure logging for Kafka producers?, and adopted the solution there, but perhaps the situation is different for consumers?

The DEBUG messages all have a similar format:

[Thread-0] DEBUG org.apache.kafka.clients.consumer.internals.Fetcher - Sending fetch for partitions... to broker... (id: 0 rack: null)

and are appearing at rate of 10 every second or so (changing poll argument to 1000 or even 10000 doesn't help, I tried)

Would really appreciate any help from any expert. Thanks in advance!

Edit: Not sure if it matters, but I added BasicConfigurator.configure(); to my main method, to resolve some other error occurring previously that stopped the Consumer from even starting.


回答1:


Just modify the logging level of the chatty class (chatty interaction). Since in your logs you see log entries originating from org.apache.kafka.clients.consumer.internals.Fetcher you can simply adjust the logging level for that logger by adding following line to log4j.properties:

log4j.logger.org.apache.kafka.clients.consumer.internals.Fetcher=WARN

... or any wider catching logger since these are name spaced:

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

Hope this helps




回答2:


create new config xml file

src/main/resources/logback.xml

<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <logger name="org.apache.kafka" level="WARN"/>
    <logger name="org.apache.kafka.common.metrics" level="WARN"/>
    <root level="warn">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>



回答3:


Not sure if you are talking about kafka-console-consumer commands, if yes this is what I did:

[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

So, you just need to edit /etc/kafka/tools-log4j.properties file and remove DEBUG (or replace it for exmaple by INFO and WARM log levels on above line

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



回答4:


I found the solution under another question which deals with Kafka producers, but it's essentially the same problem: https://stackoverflow.com/a/49532152/2380553

So I just run the following 3 lines at the beginning of my program:

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);


来源:https://stackoverflow.com/questions/44129303/kafka-consumer-outputs-excessive-debug-statements-to-console-ecilpse

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!