Hi,

Starting a new thread to discuss the current logging situation in
Kafka. I'll restate everything we know but see the [DISCUSS] Road to
Kafka 4.0 if you are interested in what has already been said. [0]

Currently Kafka uses SLF4J and reload4j as the logging backend. We had
to adopt reload4j in 3.2.0 as log4j was end of life and has a few
security issues.

In 2020 we adopted KIP-653 to upgrade to log4j2. Due to
incompatibilities in the configuration mechanism with log4j/reload4j
we decide to delay the upgrade to the next major release, Kafka 4.0.

Kafka also currently provides a log4j appender. In 2022, we adopted
KIP-719 to deprecate it since we wanted to switch to log4j2. At the
time Apache Logging also had a Kafka appender that worked with log4j2.
They since deprecated that appender in log4j2 and it is not part of
log4j3. [1]

Log4j3 is also nearing release but it seems it will require Java 17.
The website states Java 11 [2] but the artifacts from the latest 3.0.0
beta are built for Java 17. I was not able to find clear maintenance
statement about log4j2 once log4j3 gets released.

The question is where do we go from here?
We can stick with our plans:
1. Deprecate the appender in the next 3.x release and plan to remove it in 4.0
2. Do the necessary work to switch to log4j2 in 4.0
If so we need people to drive these work items. We have PRs for these
with hopefully the bulk of the code but they need
rebasing/completing/reviewing.

Otherwise we can reconsider KIP-653 and/or KIP-719.

Assuming log4j2 does not go end of life in the near future (We can
reach out to Apache Logging to clarify that point.), I think it still
makes sense to adopt it. I would also go ahead and deprecate our
appender.

Thanks,
Mickael

0: https://lists.apache.org/thread/q0sz910o1y9mhq159oy16w31d6dzh79f
1: https://github.com/apache/logging-log4j2/issues/1951
2: https://logging.apache.org/log4j/3.x/#requirements

Reply via email to