Hi Gary, On Mon, 9 Oct 2023 at 13:04, Gary Gregory <garydgreg...@gmail.com> wrote: > I think it is OK to break compatibility in a major version. I can't believe > we'd ship classes that are duplicates of Java classes like BiConsumer.
I would very much like to add breaking changes to Log4j API too, but we can not reasonably do it. We would push the few users that use Log4j API towards SLF4J for good. We need a 100% binary compatibility with version 2.x of the API. I tried a couple of low level tricks to support the old interfaces and at the same time prevent users from employing them in new code, but there is no ideal solution. The trick that has the best chance to work is to introduce a v3.Logger superinterface of Logger. LogManager#getLogger would still return Logger for binary compatibility, but users might opt-in and cast their Logger to v3.Logger. Piotr