Spring Boot 2.0中如何关闭Kafka ProducerConfig配置日志输出?
解决Spring Boot 2.0下Kafka ProducerConfig日志输出问题
我之前也碰到过这个烦人的问题——Kafka客户端在初始化Producer的时候,总会默认打印一堆INFO级别的ProducerConfig配置详情,在Spring Boot环境下如果没针对性配置日志规则,这个日志会每次发送消息都跳出来。下面给你几种可行的解决方法:
方法一:直接通过Spring Boot配置文件调整
这是最简单的方式,不需要修改日志框架的配置文件,直接在application.yml或者application.properties里添加日志级别配置:
使用application.yml
logging: level: org.apache.kafka.clients.producer.ProducerConfig: WARN
使用application.properties
logging.level.org.apache.kafka.clients.producer.ProducerConfig=WARN
原理很简单:我们把org.apache.kafka.clients.producer.ProducerConfig这个类的日志级别从默认的INFO调高到WARN(或者你也可以设为ERROR),这样INFO级别的配置详情日志就会被过滤掉。如果之后需要排查Kafka生产者的配置问题,再把级别改回INFO就行。
方法二:通过Logback配置文件定制
如果你项目里用的是Logback作为日志框架(Spring Boot默认就是Logback),可以在logback-spring.xml(或者logback.xml)里添加专门的logger规则:
<configuration> <!-- 其他原有配置 --> <logger name="org.apache.kafka.clients.producer.ProducerConfig" level="WARN" additivity="false"> <appender-ref ref="CONSOLE"/> <!-- 这里替换成你实际使用的appender名称,比如FILE等 --> </logger> </configuration>
设置additivity="false"是为了避免这个类的日志被父logger重复处理,确保只按照你指定的规则输出。
方法三:通过Log4j2配置文件定制
如果你的项目用的是Log4j2作为日志框架,在log4j2-spring.xml(或者log4j2.xml)里添加如下配置:
<Configuration> <!-- 其他原有配置 --> <Logger name="org.apache.kafka.clients.producer.ProducerConfig" level="WARN" additivity="false"> <AppenderRef ref="Console"/> <!-- 对应你项目中的appender --> </Logger> </Configuration>
这样同样可以抑制ProducerConfig的INFO级日志输出。
内容的提问来源于stack exchange,提问作者stalary
相关产品推荐
相关产品推荐

