不要打印kafka-console-consumer警告

时间:2016-02-24 12:05:06

标签: apache-kafka suppress-warnings kafka-consumer-api

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

File fXmlFile = new File("XMLS/DB.xml");
    DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
    Document doc = dBuilder.parse(fXmlFile); // the rest is just parsing...

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

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

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

2 个答案:

答案 0 :(得分:9)

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

<强> tools-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

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

答案 1 :(得分:1)

尝试创建新的配置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>