我有这个配置:
pom.xml文件
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.11.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.11.1</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>1.0.1</version>
</dependency>
资源/log4j2.properties
name=PropertiesConfig
appenders = console
appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
rootLogger.level = ERROR
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT
当我开始我的Kafka消费使用 org.apache.kafka.clients.consumer.KafkaConsumer
,正在登录 INFO
水平。任何我用 LogManager.getLogger(name)
在级别上执行配置和日志 ERROR
所以我知道 log4j2.properties
正在加载和使用文件。不过,Kafka似乎忽略了这一点。在日志中,当Kafka消费者启动时,我看到了几行: Aug 20, 2018 11:03:37 PM org.apache.kafka.common.utils.LogContext$KafkaLogger info
感谢您的帮助!
1条答案
按热度按时间mzaanser1#
Kafka日志通过slf4j。如果要使用log4j2,必须将两者配置为协同工作(通过添加log4j2提供的slf4j实现):
否则,slf4j的日志输出将使用其他后端(请确保删除该后端,类路径上不应有任何其他slf4j impl)并忽略log4j2配置。