I would be in favor of deprecating the following modules in `2.x` and dropping them starting from `3.0.0`:
1. `log4j-jndi` (available only in `main`) – nobody should use JNDI anyway 2. `log4j-layout-jackson*` – `JsonTemplateLayout` succeeds `JsonLayout`, I doubt if anybody is using `XmlLayout`, nobody should use `YamlLayout` anyway 3. `log4j-gelf` (available only in `main`) – JTL offers the same functionality, we just need to add a `CompressingLayout` (see LOG4J2-3023) and a resolver template (i.e., `gelf.json`) 4. `log4j-jms` (available only in `main`) 5. `log4j-csv` (available only in `main`) 6. `log4j-jeromq` 7. `log4j-cassandra` 8. `log4j-smtp` 9. `log4j-jakarta-smtp` 10. `log4j-couchdb` 11. `log4j-taglib` 12. `log4j-mongodb3` 13. `log4j-spring*` – we should try to upstream these to Spring Boot, otherwise to their own `apache/logging-*` repository 14. `log4j-jdbc` 15. `log4j-kafka` – we should either hand this out to the community or, if not rewrite, revamp it. In its current state <https://issues.apache.org/jira/browse/LOG4J2-3173?filter=-2&jql=project%20%3D%20%22Log4j%202%22%20AND%20status%20%3D%20Open%20AND%20text%20~%20kafka>, it doesn't appear to be of production-grade quality. For the records, Romain Manni-Bucau created LOG4J2-1650 <https://issues.apache.org/jira/browse/LOG4J2-1650> for a similar "diet". That was in 2016, since then things got sadly worse. We don't need to have a very strong consensus. As long as we have a proposal draft that everybody _roughly_ agrees on, we can announce this in every public medium we can think of (`dev@community`, `log4j-user@logging`, `dev@logging`, ASF planet, Twitter, etc.) and decide on the actual "cut" based on the feedback received. I don't want to derail the conversation at this stage, though I need to admit I have my reservations regarding the "please don't drop it because my employer uses it" argument. We can, preferably after the public feedback deadline, talk about it. On Sat, Sep 9, 2023 at 9:16 AM Piotr P. Karwasz <piotr.karw...@gmail.com> wrote: > Hi all, > > In a Slack discussion Volkan proposed (among other things) to: > > * raise the Java requirements in 3.x to Java 17. It is the same > requirement as Spring Boot 3.x has, so I don't see a reason to lower > the bar. Besides Java 21 will be an LTS. > * deprecate some modules in 2.x and drop them in 3.0.x, restore them > if a user requests it in 3.1.x. > > While the number of downloads is not the only criterium (a big company > with an internal Maven repo counts 1, a student's project that tries > multiple version counts more), these are the stats for last month: > > 1 log4j-bom 35178445 > 2 log4j-api 30598923 > 3 log4j-core 15567816 > 4 log4j-to-slf4j 14036879 > 5 log4j-slf4j-impl 8675173 > 6 log4j-1.2-api 3454601 > 7 log4j-jul 2120049 > 8 log4j-web 1964937 > 9 log4j-layout-template-json 1760437 > 10 log4j-slf4j2-impl 1013605 > 11 log4j-jcl 566636 > 12 log4j-appserver 245029 > 13 log4j-iostreams 209990 > 14 log4j-spring-boot 87578 > 15 log4j-spring-cloud-config-client 38332 > 16 log4j-jakarta-web 37351 > 17 log4j-jpl 20295 > 18 log4j-flume-ng 14055 > 19 log4j-taglib 13989 > 20 log4j-couchdb 12781 > 21 log4j-mongodb4 4623 > 22 log4j-kubernetes 2618 > 23 log4j-jpa 1252 > 24 log4j-mongodb3 1143 > 25 log4j-docker 1122 > 26 log4j-cassandra 898 > 27 log4j-jakarta-smtp 741 > 28 log4j-jdbc-dbcp2 708 > 29 log4j-to-jul 297 > > I propose to have a bar at 100k, so we keep everything up to > `log4j-iostreams` + some modules under the line that are deemed > important. > > I would keep `log4j-to-jul`, mainly because it is a third > implementation of the Log4j API and I used it at work, when I didn't > get the permission to use Log4j Core. NB: the `2.x` version of > `log4j-to-jul` will still work with the `3.x` version of `log4j-api`, > but it might require a modularized version to be fully compatible. > > The stats of `log4j-appserver` are unexpected. I guess the Jetty 9.x > support drives it (Jetty 9.x reached EOL) more than the Tomcat > support. So we could even deprecate this one and create a > `log4j-tomcat` module or drop it entirely (I will pick up the Tomcat > part in my `eu.copernik` modules). > > Piotr > > PS: The downloads of the 3.x modules split from `log4j-core` are not > that great either. In the third column I renormalize them so that > `log4j-core` has 15M downloads: > log4j-core 78627 15567816 > 1 log4j-jdbc 55 10890 > 2 log4j-layout-jackson 55 10890 > 3 log4j-jndi 44 8712 > 4 log4j-script 44 8712 > 5 log4j-kafka 40 7920 > 6 log4j-jms 39 7722 > 7 log4j-csv 38 7524 > 8 log4j-jeromq 37 7326 > 9 log4j-smtp 37 7326 > 10 log4j-layout-jackson-json 33 6534 > 11 log4j-layout-jackson-xml 30 5940 > 12 log4j-layout-jackson-yaml 24 4752 >