来自 Kafka Producer 的控制台消息过多
Excessive console messages from Kafka Producer
您如何控制 Kafka 生产者或消费者的控制台日志记录级别?我在 Scala 中使用 Kafka 0.9 API。
每次调用 KafkaProducer
上的 send
时,控制台都会给出如下输出。这是否表明我没有正确设置 KafkaProducer
,而不仅仅是日志记录过多的问题?
17:52:21.236 [pool-10-thread-7] INFO o.a.k.c.producer.ProducerConfig - ProducerConfig values:
compression.type = none
metric.reporters = []
metadata.max.age.ms = 300000
.
.
.
17:52:21.279 [pool-10-thread-7] DEBUG o.a.kafka.common.metrics.Metrics - Added sensor with name bufferpool-wait-time
17:52:21.280 [pool-10-thread-7] DEBUG o.a.kafka.common.metrics.Metrics - Added sensor with name buffer-exhausted-records
17:52:21.369 [pool-10-thread-7] DEBUG org.apache.kafka.clients.Metadata - Updated cluster metadata version 1 to Cluster(nodes = [Node(-1, localhost, 9092)], partitions = [])
17:52:21.369 [pool-10-thread-7] DEBUG o.a.kafka.common.metrics.Metrics - Added sensor with name connections-closed:client-id-producer-2
17:52:21.369 [pool-10-thread-7] DEBUG o.a.kafka.common.metrics.Metrics - Added sensor with name connections-created:client-id-producer-2
17:52:21.370 [pool-10-thread-7] DEBUG o.a.kafka.common.metrics.Metrics - Added sensor with name bytes-sent-received:client-id-producer-2
17:52:21.370 [pool-10-thread-7] DEBUG o.a.kafka.common.metrics.Metrics - Added sensor with name bytes-sent:client-id-producer-2
.
.
Kafka 服务器和 Zookeeper 查看的 properties
文件中有日志记录配置,但我假设这些不会影响 Kafka 客户端。更改这些文件中的一些日志记录配置,并重新启动 Kafka 服务器和 Zookeeper 以重新加载这些文件,并没有解决问题。
谢谢
将此添加到您的客户端代码。
Logger.getLogger("org").setLevel(Level.WARNING);
Logger.getLogger("akka").setLevel(Level.WARNING);
Logger.getLogger("kafka").setLevel(Level.WARNING);
正确配置logback解决了我的问题:
http://www.mkyong.com/logging/logback-xml-example/
在您的 logback.xml
上添加名称为 org.apacha.kafka 的记录器
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
</Pattern>
</layout>
</appender>
<logger name="org.apache.kafka" level="warn">
<appender-ref ref="STDOUT" />
</logger>
<root level="info">
<appender-ref ref="STDOUT" />
</root>
您如何控制 Kafka 生产者或消费者的控制台日志记录级别?我在 Scala 中使用 Kafka 0.9 API。
每次调用 KafkaProducer
上的 send
时,控制台都会给出如下输出。这是否表明我没有正确设置 KafkaProducer
,而不仅仅是日志记录过多的问题?
17:52:21.236 [pool-10-thread-7] INFO o.a.k.c.producer.ProducerConfig - ProducerConfig values:
compression.type = none
metric.reporters = []
metadata.max.age.ms = 300000
.
.
.
17:52:21.279 [pool-10-thread-7] DEBUG o.a.kafka.common.metrics.Metrics - Added sensor with name bufferpool-wait-time
17:52:21.280 [pool-10-thread-7] DEBUG o.a.kafka.common.metrics.Metrics - Added sensor with name buffer-exhausted-records
17:52:21.369 [pool-10-thread-7] DEBUG org.apache.kafka.clients.Metadata - Updated cluster metadata version 1 to Cluster(nodes = [Node(-1, localhost, 9092)], partitions = [])
17:52:21.369 [pool-10-thread-7] DEBUG o.a.kafka.common.metrics.Metrics - Added sensor with name connections-closed:client-id-producer-2
17:52:21.369 [pool-10-thread-7] DEBUG o.a.kafka.common.metrics.Metrics - Added sensor with name connections-created:client-id-producer-2
17:52:21.370 [pool-10-thread-7] DEBUG o.a.kafka.common.metrics.Metrics - Added sensor with name bytes-sent-received:client-id-producer-2
17:52:21.370 [pool-10-thread-7] DEBUG o.a.kafka.common.metrics.Metrics - Added sensor with name bytes-sent:client-id-producer-2
.
.
Kafka 服务器和 Zookeeper 查看的 properties
文件中有日志记录配置,但我假设这些不会影响 Kafka 客户端。更改这些文件中的一些日志记录配置,并重新启动 Kafka 服务器和 Zookeeper 以重新加载这些文件,并没有解决问题。
谢谢
将此添加到您的客户端代码。
Logger.getLogger("org").setLevel(Level.WARNING); Logger.getLogger("akka").setLevel(Level.WARNING); Logger.getLogger("kafka").setLevel(Level.WARNING);
正确配置logback解决了我的问题: http://www.mkyong.com/logging/logback-xml-example/
在您的 logback.xml
上添加名称为 org.apacha.kafka 的记录器<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
</Pattern>
</layout>
</appender>
<logger name="org.apache.kafka" level="warn">
<appender-ref ref="STDOUT" />
</logger>
<root level="info">
<appender-ref ref="STDOUT" />
</root>