【问题标题】:reduce the internal log level for Log4j2 (with Kafka Appender)降低 Log4j2 的内部日志级别(使用 Kafka Appender)
【发布时间】:2022-07-26 22:39:07
【问题描述】:

我正在使用 Log4j2 (v2.17.2) 将信息直接发送到 kafka,并且正在使用 XML 来创建配置(正如许多文章提到的那样,XML 可以处理更多的配置选项 - 属性不能)。我遇到的问题是我的控制台充满了不相关的 INFO 日志行(例如):

[main] INFO org.apache.kafka.common.utils.AppInfoParser - Kafka version: 3.1.0
[main] INFO org.apache.kafka.common.utils.AppInfoParser - Kafka commitId: 37edeed0777bacb3
[main] INFO org.apache.kafka.common.utils.AppInfoParser - Kafka startTimeMs: 1652851625060
[pool-2-thread-1] INFO org.apache.kafka.clients.consumer.KafkaConsumer - [Consumer clientId=consumer-logInfo-1, groupId=logInfo] Subscribed to topic(s): logInfo
[pool-2-thread-1] INFO org.apache.kafka.clients.Metadata - [Consumer clientId=consumer-logInfo-1, groupId=logInfo] Cluster ID: 37Prit7oRwSnQ-CX5_Iwvw

我已经尝试了 programmatically-change-log-level-in-log4j2 中的所有技术,但日志记录没有任何变化:

Configurator.setLevel("org.apache.kafka", Level.WARN);

有没有人能够从 INFO 中降低日志级别?我真的不希望通过这种级别的信息来查找问题!

--编辑--

我已经明确设置了每个类:

Configurator.setLevel("org.apache.kafka.clients.producer.ProducerConfig", Level.ERROR);
Configurator.setLevel("org.apache.kafka.clients.consumer.ConsumerConfig", Level.ERROR);

日志中的结果相同:

[main] INFO org.apache.kafka.clients.producer.ProducerConfig - ProducerConfig values: 
[Thread-1] INFO org.apache.kafka.clients.consumer.ConsumerConfig - ConsumerConfig values: 

【问题讨论】:

    标签: java apache-kafka log4j log4j2


    【解决方案1】:

    事实证明,答案非常简单:kafka-clients-3.1.0.jar(需要让 kafka appender 工作)使用 slf4j 进行日志记录,因此不会响应对 log4j 级别的任何更改!

    以下行解决了这个问题:

    System.setProperty(org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "ERROR");
    

    【讨论】:

      【解决方案2】:

      由于kafka使用slf4j的另一种方法是添加到pom.xml中

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

      在您的日志中这样做应该已经出现 kafka 条目。 然后进入 log4j2.xml 你可以这样控制日志级别:

      <?xml version="1.0" encoding="UTF-8"?>
      <Configuration status="error" shutdownHook="disable">
          <Appenders>
              <Console name="Console" target="SYSTEM_OUT">-->
                  <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss,SSS}][%c{1}:%L][%-5p] %m%n" />
              </Console>
          </Appenders>
          <Loggers>
              <Root level="${sys:log.level:-DEBUG}">
                  <AppenderRef ref="Console" />
              </Root>
              <Logger name="org.apache.kafka" level="WARN"/>
          </Loggers>
      </Configuration>
      

      重要的一行是:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-07
        • 1970-01-01
        • 1970-01-01
        • 2017-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多