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 probably want to use (or keep using) the Jakarta Log4j API.


Jeroen C. van Gelderen -- jeroen@vangelderen.org