gpt4 book ai didi

java - 为什么 Apache Kafka 消费者不使用 Log4j2 根记录器?

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:01:08 25 4
gpt4 key购买 nike

我有这个配置:

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

当我使用 org.apache.kafka.clients.consumer.KafkaConsumer 启动我的 Kafka 消费者时,它会在 INFO 级别进行日志记录。我使用 LogManager.getLogger(name) 创建的任何新记录器都支持 ERROR 级别的配置和日志,因此我知道 log4j2.properties 文件正在加载和使用。卡夫卡似乎忽略了它。在日志中,当 Kafka 消费者启动时,我多次看到这一行:

2018 年 8 月 20 日下午 11:03:37 org.apache.kafka.common.utils.LogContext$KafkaLogger 信息

感谢任何帮助!

最佳答案

Kafka 通过 SLF4J 记录日志。如果要使用 Log4j2,则必须配置两者一起工作(通过添加 Log4j2 提供的 SLF4J 实现):

<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.11.1</version>
</dependency>

如果没有这个,SLF4J 的日志输出将使用一些其他后端(确保您删除了那个后端,您的类路径上不应该有任何其他 slf4j-impl)并忽略您的 Log4j2 配置。

关于java - 为什么 Apache Kafka 消费者不使用 Log4j2 根记录器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51942663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com