web-dev-qa-db-ja.com

Kafkaコンシューマがコンソールに過度のDEBUGステートメントを出力する(Eclipse)

http://www.javaworld.com/article/3060078/big-data/big-data-messaging-with-kafka-part-1.htmlからいくつかのサンプルコードを実行しています?page = 2 であり、kafkaconsumerは必要に応じてトピックから消費していますが、すべてのポーリングの結果、多くのデバッグログが(標準出力に)印刷されます。

_/config/log4j.properties_、特に_log4j.logger.kafka=ERROR_、kafkaAppenderの設定で、すべてのINFOとDEBUGをERRORに変更してみました(確認のためにgrepを実行しました)が、問題は解決しません。 Kafkaプロデューサー? のロギングを設定する方法を参照し、そこでソリューションを採用しましたが、おそらく状況は消費者にとって違う?

DEBUGメッセージはすべて同様の形式です。

_[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();をメインメソッドに追加しました。

10
Bay Wei Heng

おしゃべりクラスのログレベルを変更するだけです(おしゃべりインタラクション)。ログには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

お役に立てれば

7
diginoise

新しい構成XMLファイルを作成する

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>
7
Zouinkhi

Kafka-console-consumerコマンドについて話しているのかどうかわからない、もしそうならこれは私がやったことです:

[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
1
user11488099

Kafkaプロデューサーを扱う別の質問の下で解決策を見つけましたが、本質的に同じ問題です: https://stackoverflow.com/a/49532152/238055

したがって、プログラムの最初で次の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);
0
szedjani