Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Log4j2 - setting log levels for a package and then a subpackage

So, I wanted to have my own code at DEBUG, but Apache's at WARN. Except for Kafka, which generates too many warnings, so I tried this:

 log4j.rootLogger=DEBUG,console,file
log4j.logger.org.apache=WARN
log4j.logger.org.apache.kafka.common.config=ERROR

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd'T'HH:mm:ss.SSS} %p (%C) [%t] - %m%n

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=/var/log/my-app/application.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd'T'HH:mm:ss.SSS} %p (%C) [%t] - %m%n

The log4j.logger.org.apache=WARN line works. But log4j.logger.org.apache.kafka.common.config=ERROR doen't seem to do anything, as I still get plenty of log statements like

2017-12-20T14:31:42.439 WARN (org.apache.kafka.common.config.AbstractConfig) [main] - The configuration batch.size = 16384 was supplied but isn't a known config.

(The config warnings are due to a dependency, not my code, so cleaning the config file is out of my control.)

I tried reversing the order: log4j.logger.org.apache.kafka.common.config=ERROR log4j.logger.org.apache=WARN but that had no effect.

Thanks!

like image 405
Xiphias Avatar asked Feb 01 '26 04:02

Xiphias


1 Answers

It looks like you are missing the additivity config on the logger.

This will prevent the incoming logger from propagating to its parent logger.

log4j.additivity.org.apache.kafka.common.config=false

more information can be found here and here.

like image 79
Bluurr Avatar answered Feb 02 '26 20:02

Bluurr



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!