当前位置: 首页 > 知识库问答 >
问题:

降低Log4j2的内部日志级别(使用Kafka Appender)

公西志文
2023-03-14

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

[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

我已经从programmetically-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: 

共有1个答案

骆鸿运
2023-03-14

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

以下行修复了该问题:

System.setProperty(org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "ERROR");
 类似资料:
  • 我有log4j2.xml,它部分配置为: 但是,跟踪消息并不存在于两个文件附加符(fileinfo/filedebug)中。当我更改FileDebug log level=“TRACE”时,就会出现跟踪消息。

  • 我在spring应用程序中使用log4j2作为我的日志工具。我想为特定的库/包设置不同于根目录的日志级别。例如,我希望< code>org.springframework为INFO,而< code>com.google为WARN。我在< code>log4j2.properties中找到了这个: 我不明白是什么意思?我一直在log4j2文档中找到它,但没有解释那是什么或意味着什么。 如何为特定包添

  • 我正在将grails 2.5.4应用程序中的log4j依赖项从1.2.17升级到最新版本2.17.1 我从BuildConfig.groovy中排除了log4j,并添加了与v2.17.1相关的以下依赖项: log4j api log4j核心 log4j-1.2-api log4j-slf4j-impl 我用的是log4-1。x桥接以减少总体代码基更改。 我添加了以下log4j2。conf目录下的属

  • 我已经将ApacheJena库包含到我的Java项目中,并且我正在使用ApacheLog4J2作为我的记录器。我还包括了用于从log4jv1映射的log4j-1.2-api和log4j-slf4j-impl依赖项。x和SLF4J(分别) 但是,我无法更改Jena的日志记录级别 我尝试在log4j2中设置它。xml(我在项目中使用的内容): 我甚至尝试添加一个log4j。属性文件: 没有成功 是否有

  • 根记录器配置为级别的同步记录器。我还有几个异步记录器。其中一个异步记录器配置在自定义的较高日志级别(789)。这高于级别(600)。 这样做的原因是有一个日志级别,可以用于通过异步记录器及其自己的附加程序记录的特殊事件。 我们不希望将事件发送给同步根记录器或其他记录器。。但仅限于异步记录器及其相应的附加程序。。可能吗?