不要打印 kafka-console-consumer 警告

Don't print the kafka-console-consumer warnings

我正在尝试将加密消息调试到 Kafka 集群上。显然这些消息充满了不可打印的字符并且不能在控制台上使用,所以我想将输出保存在这样的文件中:

kafka-console-consumer \
    --zookeeper 0.zookeeper.local,1.zookeeper.local \
    --max-messages 1 \
    --topic MYTOPIC > /tmp/message

我无法解密生成的消息,因为输出包含密文以及警告消息,例如:

[2016-02-24 11:52:47,488] WARN Reconnect due to socket error: null (kafka.consumer.SimpleConsumer)

有没有办法在文件中获取一条消息并且在该文件中嵌入警告?

入站控制台工具有一个特殊的记录器配置文件。请在 [kafka_home]/config/tools-log4j.properties 文件中将记录器级别从 WARN 更改为 OFF。该文件应如下所示:

工具-log4j.properties

log4j.rootLogger=OFF, stdout 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c)%n

之后您将只会在控制台中收到消息。

尝试创建新的配置 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="INFO"/>
    <logger name="org.apache.kafka.common.metrics" level="INFO"/>
    <root level="debug">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>