【发布时间】:2020-08-08 14:10:25
【问题描述】:
我试图通过console 简单地获得Kafka logging,但在安装我的软件后,我一直看到这个错误。
我的log4j2.xml:
我的pom.xml 包含此依赖项:
[INFO] +- org.apache.logging.log4j:log4j-slf4j-impl:jar:2.12.:compile
[INFO] | +- org.apache.logging.log4j:log4j-api:jar:2.12.1:compile
[INFO] | \- org.apache.logging.log4j:log4j-core:jar:2.12.1:runtime
[INFO] +- org.apache.logging.log4j:log4j-api-scala_2.12:jar:11.0:compile
我的主类是一个非常简单的消费者:
class Consumer(val brokers: String,
val groupId: String,
val topic: String) extends Logging {
val props: Properties = createConsumerConfig(brokers, groupId)
val consumer: KafkaConsumer[String, User] = new KafkaConsumer[String, User](props)
var executor: ExecutorService = _
def shutdown() = {
if (consumer != null)
consumer.close()
if (executor != null)
executor.shutdown()
}
def createConsumerConfig(brokers: String, groupId: String): Properties = {
val props = new Properties()
props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, brokers)
props.put(ConsumerConfig.GROUP_ID_CONFIG, groupId)
props.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, "true")
props.put(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG, "1000")
props.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG, "30000")
props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer")
props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, "kafka.UserDeserializer")
props
}
def run(): Unit = {
consumer.subscribe(Collections.singletonList(this.topic))
Executors.newSingleThreadExecutor.execute(() => {
while (true) {
val records: ConsumerRecords[String, User] = consumer.poll(ofMillis(1000))
records
.forEach(r => {
logger.info("Received message: (" + r.key() + ", " + r.value() + ") at offset " + r.offset())
})
}
})
}
所以,当我通过命令行java -jarpackage 我的应用和run 时,前几行是:
log4j:WARN No appenders could be found for logger (kafka.utils.Log4jControllerRegistration$).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
我做错了什么?我尝试了很多依赖版本组合,并尝试将我的log4j2.xml 更改为log4j2.properties,但我从未设法注册此logger:
请教我如何实现最简单的日志!
【问题讨论】:
标签: scala maven logging apache-kafka log4j2