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



Reply via email to