- 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