DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
...
- Specifying the provider class explicitly via the
slf4j.providersystem property bypasses the service loader mechanism for finding providers and may shorten SLF4J initialization. (reference: https://www.slf4j.org/faq.html#explicitProvider) - Indirectly controlling the logging frameworks that Kafka supports by explicitly declaring supported SLF4J providers. This approach would require users to identify and implement logging frameworks that are compatible with our declared providers. By implementing this strategy, we can substantially reduce our maintenance overhead while ensuring consistent logging behavior across implementations.
Our current build configuration employs fragile dependency management tricks to handle SLF4J backends. We can eliminate these brittle build mechanisms by transitioning to explicit provider dependencies after upgrading to 2.0. This would create a more robust system where users can override logging configurations as needed, greatly simplifying our maintenance process and the user experience.
Public Interfaces
Update the below files to upgrade slf4j, starting with the 4.1.0 version.
dependencies.gradle
build.gradle
...
Compatibility, Deprecation, and Migration Plan
Note: As we introduce this change in version 4.1.0, which is a minor version (not a major version), we must ensure it doesn't break existing users' code. If backward compatibility cannot be guaranteed, this change will be postponed to version 5.0.0.
Ensure the user's code works well when specifying their preferred logging frameworks.
We will provide compatible binding jars for log4j2 in in Kafka when upgrading slf4j-api upgrading to 2.0.17.
Since As we introduce this change in major version 4.1.0, since we provide the backend binding dependencies, users should be able to upgrade their backend dependencies seamlessly.
Please note that users have to upgrade their logging framework to the matched provider explicitly, and we expect users to be responsible for keeping a maintaining consistent version versions when using other providers.
For future slf4j upgrade: In the future, for slf4j upgrades, we agree not to have a KIP again and follow the same approach mentioned in this KIP.
...