Description
This story aims to overhaul main
(targeting Log4j version 3.0.0
) branch as a follow up of #1969 and #2016.
Removal of deprecated features
main
, since it is forked from 2.x
, contains several features and modules that are suitable to be dropped. Since this is a backward incompatible change, we cannot implement this for 2.x
. main
, targeting 3.0.0
, i.e., a new major version release, is a good opportunity for this. Following changes are mostly related with that.
- Remove
ThreadLocals.enable
property inmain
#2105 - Remove
DefaultLogEventFactory
(b338d07) - Remove
Supplier
#2175 - Remove
log4j-layout-jackson
andlog4j-layout-jackson-xml
#2198 - Remove ineffective tests #2209
- Deprecate
StatusConsoleListener
filters #2226 - Remove JMX support #2228
- Remove
log4j-jcl
andlog4j-appserver
modules #2257
Split functionality to dedicated modules
2.x
used to combine several features in one module: log4j-core
. This imposes, next to a greater surface for potential vulnerabilities, several disadvantages for those who only need a subset of these offered features. Here we try to improve this experience by moving certain functionalities to their own dedicated modules.
- Consider moving recyclers to
log4j-core
#2106 - move asynchronous logging to
log4j-async
Port changes from 2.x
main
was forked ~6 years ago from 2.x
. In the meantime, thousands of improvements were introduced to 2.x
and sadly a majority of these were not ported to main
. Put another way, main
contains several issues that were already fixed in 2.x
. Below shared items are related with porting such changes from 2.x
to main
.
- Port
log4j-1.2-api
changes from2.x
#2188 - Port
log4j-api
changes from2.x
#2208 - Restore compatibility of Log4j API #2203
log4j-appserver
(75ab3ae)log4j-csv
✔️log4j-docker
(788ec71)log4j-flume-ng
(846f354, ca6f923)log4j-gctests
(245da43)log4j-iostreams
(4bd7e19)log4j-jcl
(40f1bde, a863232, b8fb8c8)log4j-jdbc
(14013cd)log4j-jdbc-dbcp2
(2b0ba72)log4j-jndi
(cf4b39e, 986a716)log4j-jndi-test
(c5680fe, bac23ba)log4j-layout-template-json
&log4j-layout-template-json-test
(027009e, 923a43e, 3254858, b1113c7)log4j-osgi
(e25c308, 496951e, 125f505, e3a2559)- Port
log4j-osgi-test
changes from2.x
#2187
Miscellaneous improvements
In accordance with Boy Scout Rule, things we have improved along the way: