Ceki Gulcu: log4j version 1.0 released

by ServerWatch Staff

I am pleased to announce log4j version 1.0, the 20th public release of log4j and the first under the Apache banner.

Date: Tue, 09 Jan 2001 04:24:41 +0100
From: Ceki Gulcu ceki@apache.org
To: announce@apache.org
Subject: log4j version 1.0
Greetings everyone,
I am pleased to announce log4j version 1.0, the 20th public release of
log4j and the first under the Apache banner.
For those unfamiliar with the name, log4j is a popular logging package
written in Java. log4j allows you to log to a file, a java.io.Writer,
a remote server, NT Event Log or a syslog daemon.  The package is
designed so that log statements can remain in shipped code without
incurring a high performance cost. One distinctive feature of log4j is
the notion of hierarchical categories. Using categories, it is
possible to select (at runtime) which log statements are output at
arbitrary granularity. Users can choose to implement their own log
formats and output strategies.
This release brings a number of new features along with bug fixes.
The most important change is that log4j is now part of the Jakarta
project of the Apache Software Foundation. Consequently, the package
hierarchy now starts at org.apache.log4j instead of org.log4j.
I have also taken advantage of this release to drop the EMERG priority
and replace it with FATAL which is more widely understood.
This version fixes all known bugs. It also adds a number of features
such as the SMTPAppender, HTMLLayout, JMSAppender and ObjectRenderers.
The PropertyConfigurator has been enhanced to support variable
substitution for all option values, support for specifying the
category factory and object renderers. Just as importantly, both the
DOMConfigurator and the PropertyConfigurator can be used to configure
any given hierarchy not just the default one.
The HISTORY file reads:
    [*] Changes that are 100% compatible with existing client code.
   [**] Changes that requiring little or no modification to existing
        client code.
  [***] Changes requiring important modifications to existing client code.

  - Release of version 1.0 (the 20th public release)
  - Package hierarchy now starts at org.apache.log4j. [***]

  - Added the fatal() family of methods to the Category
    class.  Moreoever, the EMERG priority has been removed from the
    Priority class.  This priority has been replaced by the FATAL
    priority that is more widely accepted.  This change will
    require EMERG log statements to be replaced by FATAL log
    statements.  Assuming EMERG log statements are rare, this should
    have a small but bearable impact on existing client code.
    Moreover, the Unix Syslog priorities ALERT, CRIT and NOTICE are no
    longer recognized. Support for these priorities was mininal and
    few users should suffer from these changes. [**/***]
  - Removed the methods setRootPriority, getRootPriority as these
    methods were redundant and had been previously deprecated. [**]
  - Dropped the DOM Level 2 dependency in DOMConfigurator. This makes
    log4j XML configurable using Sun's parser or Apache's Xerces. [*]
  - Enhanced the PropertyConfigurator and DOMConfigurator to support
    customization of independent Hierarchies. The
    org.apache.log4j.net.SocketServer has been enhanced to take
    advantage of this functionality. The old code of SocketServer has
    been moved to SimpleSocketServer. [**]
  - Enhanced the PropertyConfigurator to support variable substitution
    for all option *values* (but not keys!). [*]
  - Categories are now aware of the Hierarchy they are linked to. This
    will provide a basis for several performance enhancements planned
    for the future. [*]
  - Added support for object rendering. It is now possible to register
    an object renderer for a given object type. When the given object
    needs to be logged log4j will invoke the corresponding renderer to
    transform the object into a String.
    As a result of this enhancement, all the String forms of all the
    printing methods such as debug(String), info(String) have been

    removed as they are no longer necessary. This change should be
    perfectly backward compatible. [*]
  - Added support for user defined category factories in the
    PropertyConfigurator. Thus, it is now possible to configure log4j
    with a properties file and still use custom Category
    sub-classes. The DOMConfigurator had already a finer grain
    support. [*]
  - Addeed the SMTPAppender that in case of an error or fatal event
    sends an e-mail containing latest N logging events in its buffer,
    where N is chosen by the user. [*]
  - Added the method getInstance(Class) to the Category class. [*]
  - Corrected a bug in configureAndWatch method of configurators that
    would configure log4j only after an unnecessary delay. [*]
Best regards, Ceki Gulcu
This article was originally published on Tuesday Jan 9th 2001
Mobile Site | Full Site