控制台log4j2 kafka:找不到记录器的附加程序(kafka.utils.Log4jControllerRegistration $)

戈勒姆

我试图Kafka简单地logging通过console,但是在安装我的软件后,我只会继续看到此错误。

我的log4j2.xml

https://pastebin.com/gqyN1Fsi

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())
         })
     }
   })
 }

因此,当我使用package我的应用程序并run通过命令行时java -jar,前几行是:

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

请建议我实现最简单日志的方法!

呼叫

试试这个,很简单

maven dependency

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.25</version>
        </dependency>

在代码中导入

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

初始化您的日志

    private void run() {
        // logger
        Logger logger = LoggerFactory.getLogger(ConsumerDemoWithThread.class.getName());

用日志跟踪过程

       // add a shutdown hook
        Runtime.getRuntime().addShutdownHook(new Thread( () -> {
            logger.info("Caught shutdown hook"); // log
            ((ConsumerRunnable) myConsumerRunnable).shutdown();
            try {
                latch.await();
            } catch(InterruptedException e) {
                e.printStackTrace();
            }
            logger.info("Application has exited"); // log
        }));

        try {
            latch.await();
        } catch(InterruptedException e) {
            logger.error("Application got interrupted", e); // log
        } finally {
            logger.info("Application is closing");  // log
        }
    }

我希望它会为您提供一些线索。问候。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Log4j2的控制台附加程序的NullpointerException

log4j2 配置记录到文件但不记录到控制台

Log4j2:记录影响控制台级别的文件级别

Log4j2记录到文件和控制台

克服 log4j 警告的便利 (maven/gradle) 依赖:“找不到记录器的附加程序”,只需写入控制台

使用控制台和滚动文件附加程序的非常简单的log4j2属性配置文件

使用控制台和文件附加器的非常简单的log4j2 XML配置文件

在控制台中禁用自定义记录器打印(Log4j2)

找不到记录器(log4j)的附加程序?

log4j:WARN在web.xml中找不到记录器的附加程序

使用Log4j找不到记录器的附加程序

如何捕获“ log4j:WARN找不到记录器的附加程序”?

如何在控制台应用程序中禁用log4j2的自动初始化?

log4j:WARN找不到记录器的附加程序。Log4j 1.2.17罐

找不到log4j2配置文件。使用默认配置:仅将错误记录到控制台

如何定义Log4j2附加程序仅记录特定的命名记录器?

log4j:WARN找不到记录器的附加程序(org.springframework.web.context.support.StandardServletEnvironment)

log4j:WARN找不到记录器的附加程序(org.springframework.core.env.StandardEnvironment)

Log4j找不到记录器的附加程序(org.apache.hadoop.util.shell)

log4j:WARN找不到记录器的附加程序(org.hibernate.cfg.Environment)

log4j 2向控制台附加程序添加多种颜色

如何使用log4j记录器在Eclipse的控制台输出中显示Java程序的结果?

Hadoop log4j无法正常工作,因为找不到记录器的附加程序(org.apache.hadoop.metrics2.lib.MutableMetricsFactory)

log4j:WARN找不到记录器的附加程序(正在运行jar文件,而不是Web应用程序)

无法使用 Log4j2 在控制台中记录消息,但它们被记录在文件中

SDL Core,无法安装,找不到记录器 (SDLMain) 的附加程序。log4cxx:请正确初始化log4cxx系统

Log4j2在生产中禁用控制台

Log4J2 - 只写入日志文件而不是控制台

使Log4j控制台附加程序对不同的线程使用不同的颜色