Something I created but didn't push to get included in 2 is the ability to
hard code source code locations. This is useful in contexts where the
compiler can provide them. For instance, Scala's macros can do it. I
implemented this intending it to improve performance, since run-time stack
tracing is no longer necessary.

https://github.com/shawjef3/logging-log4j2/tree/message-location-release-2.x-squashed
https://github.com/shawjef3/logging-log4j-scala/tree/message-location-squashed

On Mon, Dec 16, 2019 at 3:34 PM Ralph Goers <[email protected]>
wrote:

> I should point out that a lot of the crappy things we did with interfaces
> prior to Java 8 can now be undone. Some of it already has been. For
> example, ExtendedLogger was added so we could add new methods to the Logger
> interface. Those can now all be moved to the Logger interface as default
> methods. But ExtendedLogger still needs to stick around even if it is an
> empty interface as a lot of code references it.  I already did that for
> LifeCycle2, MessageFactory2, AbstractMessageFactory and possibly others.
>
> Ralph
>
>
> > On Dec 16, 2019, at 1:14 PM, Ralph Goers <[email protected]>
> wrote:
> >
> >
> >
> >> On Dec 16, 2019, at 12:59 PM, Raman Gupta <[email protected]>
> wrote:
> >>
> >> What is the point of releasing log4j 3.x if you only intend to make
> >> non-breaking changes? Is it just a marketing thing then?
> >
> > We will be significantly impacting the implementation. We are breaking
> up core into smaller modules. Until we upgraded 2.13.0 to Java 8 we had
> added stuff to the API that couldn’t be implemented in Java 7. Since 2.13.0
> is now on Java 8 a lot of the new API stuff has been back ported, so I
> don’t expect much difference there.
> >
> > The main driver for 3.0 was always to break it up so that core didn’t
> have so many optional dependencies. That dove-tailed with JPMS in Java 9 so
> that most of Log4j could be proper JPMS modules.
> >
> > I have also modified the plugin system to address problems that occur
> with JPMS in finding them across modules - the plugin system no longer has
> a Log4jPlugins.dat file. Instead it generates a class file containing the
> plugin definitions which is loaded by the ServiceLoader.
> >
> > So 3.0 really will be a significant change. But it should still support
> anything that was compiled against 2.x.
> >
> > Ralph
> >
> >
> >
> >
>
>
>

Reply via email to