如何为Kafka生产者配置日志记录?

时间:2016-03-03 13:40:00

标签: logging log4j apache-kafka kafka-producer-api

我正在使用Kafka生产者客户端,我的项目中没有任何log4j配置。

在运行时,程序会打印很多我真正不想要的Kafka Debug日志。

所以,我尝试添加一个log4j.properties来将日志级别设置为ERROR,如下所示,这似乎不起作用:

log4j.rootLogger=ERROR

如何更改Kafka Log Level?

5 个答案:

答案 0 :(得分:9)

运行客户端时使用命令行标志-Dlog4j.configuration=file:/path/to/log4j.properties

示例log4j属性文件:

对于导致调用kafka-run-class.sh的镜像制作工具和其他工具,您可以使用env变量KAFKA_LOG4J_OPTS(设置为类似-Dlog4j.configuration=file:/path/to/log4j.properties)来更改日志记录配置。请参阅:https://github.com/apache/kafka/blob/0.10.2/bin/kafka-run-class.sh#L158

我用于测试的镜像制作工具的log4j.properties文件示例。

# https://github.com/apache/kafka/blob/trunk/config/tools-log4j.properties

log4j.rootLogger=DEBUG, stderr

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

答案 1 :(得分:2)

尝试将logging.level.org.apache.kafka:DEBUG添加到客户端配置属性中。 我正在使用Springboot,这是格式。为您的客户计划使用适当的格式。

答案 2 :(得分:0)

我以为你在谈论Kafka服务器日志。您可以使用以下配置

将日志级别更改为ERROR
log4j.logger.kafka=ERROR, kafkaAppender

希望这有帮助!

答案 3 :(得分:0)

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

答案 4 :(得分:0)

application.yml文件或属性文件中如下定义日志记录级别。

logging:
  level:
    root: INFO
    org:
      apache:
        kafka: WARN

通过定义以上内容,Kafka将仅打印警告日志。

相关问题