【发布时间】:2020-04-10 13:33:03
【问题描述】:
我正在使用一个普通的 Java 项目来运行(无框架)Kafka 生产者和消费者。
我正在尝试控制KafkaProducer 和KafkaConsumer 代码生成的日志,我无法使用log4j.properties 配置对其进行影响:
log4j.rootLogger=ERROR,stdout
log4j.logger.kafka=ERROR,stdout
log4j.logger.org.apache.kafka.clients.producer.ProducerConfig=ERROR,stdout
log4j.logger.org.apache.kafka.common.utils.AppInfoParser=ERROR,stdout
log4j.logger.org.apache.kafka.clients.consumer.internals.AbstractCoordinator=ERROR,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c)%n
无论我在log4j.properties 文件中提供什么设置,我仍然得到如下所示的日志输出:
[main] INFO org.apache.kafka.clients.producer.ProducerConfig - ProducerConfig values:
...
[main] INFO org.apache.kafka.clients.producer.ProducerConfig - ProducerConfig values:
...
[main] INFO org.apache.kafka.clients.producer.ProducerConfig - ProducerConfig values:
...
[main] INFO org.apache.kafka.clients.consumer.internals.AbstractCoordinator - [Consumer clientId=UM00160, groupId=string-group] (Re-)joining group
如何控制 Kafka 客户端库的日志记录?将我的 log4j.properties 文件链接到 Kafka 客户端库日志记录我缺少什么?为了不向输出发送垃圾邮件,我必须使用:mvn test 2> /dev/null 运行 Maven 测试。我可以通过log4j.properties 进行配置吗?
上下文:
我有以下相关文件:
── test
├── java
│ └── com
│ └── example
│ ├── PropertyReader.java
│ └── strings
│ └── TestKafkaStringValues.java
└── resources
├── application.properties
└── log4j.properties
我正在尝试使用 Maven surefire 插件 (mvn test) 或 Eclipse JUnit 插件(等效于 java ...)来运行 TestKafkaStringValues.java。
为了万无一失,我在 Maven pom.xml 中使用以下配置:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<systemPropertyVariables>
<log4j.configuration>file:log4j.properties</log4j.configuration>
</systemPropertyVariables>
</configuration>
</plugin>
对于 JUnit,我使用以下 Java VM 参数:-Dlog4j.configuration=log4j.properties。
我还尝试在这两种情况下使用log4j.properties 的绝对路径。还是不行。
你可以看到完整的代码here。
【问题讨论】:
标签: java logging log4j kafka-producer-api