Release plan for log4j 1.2

C. Gülcü

Here is my proposed plan for the next major log4j release. As customary, there is no scheduled release date. It will be ready when its ready. Your comments and suggestions are most welcome.

After we get appropriate feedback we can proceed with a vote.

Label Comment Volunteer
More test cases We need more automated test cases to catch bugs as early is possible.

Contributors are expected to be familiar with the log4j test environment. They are also required to add a new test case with each new feature or component.

All committers
JMX support A common request is to change log4j settings without shutting down a running application. The JMX API is designed to handle such management tasks.

For example, a HierarchyAgent could list all existing categories in a hierarchy, create new categories, change the priority or attach a new appender to a category. Log4j core needs to be enhanced to report events such as the creation of a new categories, priority changes, appender attachments/removals etc.

TBD
JDBCAppender We currently have two competing JDBCAppenders: one by Thomas Fenner and the other by Kevin Steppe. After proper testing, we should include at least of one of these in the standard log4j distribution. TBD
Log4j in applets In order to minimize network traffic, the size of log4j-core.jar needs to be reduced to at most 50KB. TBD
Improved documentation Log4j documentation needs to be enhanced with configuration examples and much more hand-holding. TBD
Mapped Diagnostic Contexts Mapped Diagnostic Contexts are similar to the NDC except that the MDC is a string to string map instead of a stack that the user sets when entering a special context. The PatternLayout has to be enhanced to support this by extending the %x pattern to accept an argument. Here is an example:
 ConversionPattern=3D%d %p %c %x{server} %x{host} - %m%n
User code:
{
   MDC.put("server", "totoServer");
   MDC.put("host", "someHost");

   cat.debug("Hello");

}
will print:
2000-01-24 10:00:00,000 DEBUG totoServer someHost - Hello

To make MDCs truly user friendly ThreadLocal variables are required. This will allow the MDC to be inherited by child threads. ThreadLocal are only supported under JDK 1.2 and above. In JDK 1.1, the MDC will not work but won't harm the user application either.

C. Gülcü