Re: [log4j] Making Log4j 2 API "the Log4j API"

2024-01-18 Thread Volkan Yazıcı
If we 1. move all non-API (`AbstractLogger`, `PropertiesUtil`, etc.) classes in `log4j-api-3.x` to a new `log4j-spi-3.x` module, and 2. Only implement `log4j-api-2.x` *interfaces* (not abstract classes!) in `log4j-core` we can have a Log4j 3 without a `log4j-api-3.x` module, right? >

Re: [log4j] Making Log4j 2 API "the Log4j API"

2024-01-18 Thread Gary Gregory
Using the same API jar for 3.x core is intriguing. I like the idea of a cleaned-up API jar (no custom Supplier) that can front 2.x and 3.x. I'd love to hash this out in a call. Gary On Thu, Jan 18, 2024 at 12:02 AM Ralph Goers wrote: > > The quick answer to this question is “I don’t know”. When

Re: [log4j] Making Log4j 2 API "the Log4j API"

2024-01-18 Thread Ralph Goers
> On Jan 18, 2024, at 6:15 AM, Gary Gregory wrote: > > Using the same API jar for 3.x core is intriguing. I like the idea of > a cleaned-up API jar (no custom Supplier) that can front 2.x and 3.x. > I don’t think that is what Volkan is proposing as it definitely would break compatibility be

Re: [log4j] Making Log4j 2 API "the Log4j API"

2024-01-18 Thread Ralph Goers
> On Jan 18, 2024, at 5:37 AM, Volkan Yazıcı wrote: > > If we > > 1. move all non-API (`AbstractLogger`, `PropertiesUtil`, etc.) classes > in `log4j-api-3.x` to a new `log4j-spi-3.x` module, and > 2. Only implement `log4j-api-2.x` *interfaces* (not abstract classes!) > in `log4j-core`

Re: [log4j] Making Log4j 2 API "the Log4j API"

2024-01-18 Thread Ralph Goers
> On Jan 18, 2024, at 7:55 AM, Ralph Goers wrote: > > > >> On Jan 18, 2024, at 5:37 AM, Volkan Yazıcı wrote: >> >> If we >> >> 1. move all non-API (`AbstractLogger`, `PropertiesUtil`, etc.) classes >> in `log4j-api-3.x` to a new `log4j-spi-3.x` module, and >> 2. Only implement `log4j-a

Re: [log4j] Making Log4j 2 API "the Log4j API"

2024-01-18 Thread Ralph Goers
> On Jan 18, 2024, at 8:14 AM, Ralph Goers wrote: > > > >> On Jan 18, 2024, at 7:55 AM, Ralph Goers wrote: >> >> >> >>> On Jan 18, 2024, at 5:37 AM, Volkan Yazıcı wrote: >>> >>> If we >>> >>> 1. move all non-API (`AbstractLogger`, `PropertiesUtil`, etc.) classes >>> in `log4j-api-3.x`

Re: [log4j] Making Log4j 2 API "the Log4j API"

2024-01-18 Thread Piotr P. Karwasz
Hi Volkan, On Wed, 17 Jan 2024 at 17:12, Volkan Yazıcı wrote: > Given Ralph and Piotr are strongly opinionated about keeping > `log4j-api-3.x` binary compatible to `log4j-api-2.x`, can we not release > `log4j-api-3.x` in `main` and make `main` only depend on `log4j-api-2.x` > instead? The main p

Re: [log4j] Making Log4j 2 API "the Log4j API"

2024-01-18 Thread Piotr P. Karwasz
Hi Ralph, On Thu, 18 Jan 2024 at 15:56, Ralph Goers wrote: > Spring uses PropertiesUtil. I suspect it isn’t alone. That would mean > anything impacted by the property changes would have to be in the spi or > abstracted to reference something in the spi. I am assuming a log4j-spi-2.x > would al

Re: [log4j] Making Log4j 2 API "the Log4j API"

2024-01-18 Thread Piotr P. Karwasz
Hi Ralph, On Thu, 18 Jan 2024 at 16:15, Ralph Goers wrote: > Note that LogManager has > > import org.apache.logging.log4j.simple.SimpleLoggerContextFactory; > import org.apache.logging.log4j.spi.LoggerContext; > import org.apache.logging.log4j.spi.LoggerContextFactory; > import org.apache.logging

Re: [log4j] Making Log4j 2 API "the Log4j API"

2024-01-18 Thread Ralph Goers
> On Jan 18, 2024, at 9:01 AM, Piotr P. Karwasz wrote: > > Hi Ralph, > > On Thu, 18 Jan 2024 at 15:56, Ralph Goers wrote: >> Spring uses PropertiesUtil. I suspect it isn’t alone. That would mean >> anything impacted by the property changes would have to be in the spi or >> abstracted to re

Re: [log4j] Making Log4j 2 API "the Log4j API"

2024-01-18 Thread Ralph Goers
I have a much more liberal view of the API. That is, if the class isn’t documented as private AND it can be reasonably used outside of Log4j then it is public. However, I would actually have to look at every class to see how much different it is from your list. Ralph > On Jan 18, 2024, at 9:

Re: [log4j] Making Log4j 2 API "the Log4j API"

2024-01-18 Thread Piotr P. Karwasz
Hi Ralph, On Thu, 18 Jan 2024 at 18:18, Ralph Goers wrote: > > Besides we already broke their code, when 2.7 introduced breaking > > changes to ConfigurationFactory. > > ? The contribution I made was done last year - long past 2.7. Yes, what I meant is that Spring Boot uses some Log4j Core speci

Re: [log4j] Making Log4j 2 API "the Log4j API"

2024-01-18 Thread Ralph Goers
> On Jan 18, 2024, at 12:59 PM, Piotr P. Karwasz > wrote: > > Hi Ralph, > > On Thu, 18 Jan 2024 at 18:18, Ralph Goers wrote: >>> Besides we already broke their code, when 2.7 introduced breaking >>> changes to ConfigurationFactory. >> >> ? The contribution I made was done last year - long

interesting writeup of some nice engineering

2024-01-18 Thread Remko Popma
https://www.uber.com/en-JP/blog/reducing-logging-cost-by-two-orders-of-magnitude-using-clp/ tldr: Uber created a CLP appender for log4j that compresses on the fly. Impressive 169x compression rate. Resulting compressed

Re: interesting writeup of some nice engineering

2024-01-18 Thread Piotr P. Karwasz
Hi Remko, On Thu, 18 Jan 2024 at 23:16, Remko Popma wrote: > > https://www.uber.com/en-JP/blog/reducing-logging-cost-by-two-orders-of-magnitude-using-clp/ > > tldr: > Uber created a CLP > > appender for log4j that com