Java >> Java tutorial >  >> Tag >> Log4j

reducere det interne logniveau for Log4j2 (med Kafka Appender)

Jeg bruger Log4j2 (v2.17.2) til at sende information direkte til kafka, og jeg bruger XML til at oprette konfigurationen (da mange artikler nævner, at XML kan håndtere mange flere konfigurationsmuligheder – egenskaber gør ikke). Det problem, jeg har, er, at min konsol er fyldt til randen med irrelevante INFO-log-linjer (som et eksempel):

[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

Jeg har prøvet alle teknikkerne fra programmatic-change-log-level-in-log4j2 uden ændringer i logningen:

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

Er der nogen, der har haft held med at få logniveauet til at reducere fra INFO? Jeg ønsker virkelig ikke, at det niveau af information skal gennemtrawles for at finde problemerne!

–rediger–

Jeg har gennemgået udtrykkeligt at indstille pr. klasse:

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

med samme resultater i loggen:

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

Svar

Det viser sig, at svaret er meget enkelt:kafka-clients-3.1.0.jar (kræves for at få kafka-appenderen til at fungere) bruger slf4j til sin logning, så den reagerer ikke på ændringer af log4j-niveauer!

Følgende linje løser problemet:

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

No
Java tag