Logging in Java

In the Java world we have a choice of two Logging APIs. One called
Log4j, is produced by the Apache Jakarta group, the other is called
JSR47, currently in beta, produced by Sun and introduced in JDK 1.4.

The Log4j API has been around for quite a while, is simple, flexible,
high-performance, tested and proven code. The code is actively
maintained by people who actually use the API in their own projects.
Log4j works on any JDK 1.1 and up. As it stands it offers all the
functionality we will ever need for WebFunds and Systemics projects.

The JSR47 designers seem to have looked at most of the features of
Log4j, mutilated them and inserted them in JSR47 (remember the JCE
anyone?). Like Log4j, this API delivers all the functionality we might
ever need for our projects but it is only available on JDK 1.4. While it
is possible to create a clean-room version that will work on JDK
1.1/1.2, it is not possible to create a version that runs on JDK 1.3
(because JSR47 lives in the java.* namespace).

Given that

we will need to support JDK 1.2/1.3 and 1.4 simultaneously for WebFunds

we do not want to spend time creating a clean-room implementation that
won't work on JDK 1.3 anyway