You are viewing a plain text version of this content. The canonical link for it is here.
Posted to announcements@jakarta.apache.org by Ceki Gülcü <cg...@qos.ch> on 2001/04/18 11:24:30 UTC

log4j version 1.1beta2 released

Greetings,


After a three month wait, I am pleased to announce log4j version
1.1b2, a release candidate that should be soon sanctioned as 1.1 final
release.

Version 1.1beta2 is 100% backward compatible with log4j version 1.0.x,
even if 1.1beta1 was not. Thus it should be considered as a drop-in
replacement for all 1.0.x versions and as well as 1.1beta1.

Beta2 is mainly maintenance release that corrects *many* small or big
wrinkles in previous versions.  There were important internal changes,
in particular we now use JavaBeans style configuration of log4j
components. This has caused some APIs to be deprecated although they
are still accessible.

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.


 April 18, 2001

 - Release of version 1.1b2

 - The directory structure has changed to better suit Jakarta
   conventions as follows:

   org/**   --> src/java/org/**
   xdocs/** --> src/xdocs/**

   If you have a CVS checked out copy of log4j be sure to check out a
   fresh copy. [*]

 - Added a few jar files required at build time to build/lib so that
   it is now possible to compile log4j out of the box. [*]

 - Whenever a priority parameter is expected in a configuration file,
   one can now use a custom priority class. See OptionConverter.toPriority
   method for more information. Note that the <priority> element in
   log4j.dtd remains unaffected by this change. [*]

 - Added the setQuietMode(booelan) method to LogLog. In quiet mode
   LogLog will not output anything even in case of errors. [*]

 - Log4j components are now configured as JavaBeans. The setOption and
   getOptionString methods have been deprecated in OptionHandler
   interface which is implemented by most log4j components. [*]

 - The stack trace of a throwable passed in a logging statement is not
   parsed into a stack array which is serializable. This allows cascading of
   log4j servers to properly propagate throwable information. [*]

 - In XML configuration files, the <configuration> element has been
   deprecated and was replaced by the <log4j:configuration> element. [*]

   The following perl command can help to migrate:

   perl -p -i.bak -e "s/configuration/log4j:configuration/;" file1.xml .. fileN.xml

  - The "log4j.configDebug" system property has been replaced with the
    "log4j.debug" system property altough it is still available.
    Similarly, the "configDebug" attribute has been deprecated and
    replaced with the "debug" attribute in log4j.dtd. [*]

        
 February 23, 2001

 - Release of version 1.1b1

 - Logging can now be disabled per Hierarchy. It can also be disabled
   using configuration files using the "disable" directive.  The
   "disableOverride" directive takes precedence over the "disable"
   directive.  As a result of this change the disable family of
   methods in BasicConfigurator has been deprecated and replaced by the same 
   family of methods in the Hierarchy class. [*]

 - The FileAppender has been split into three parts: WriterAppender,
   ConsoleAppender and FileAppender. ConsoleAppender takes over the
   console logging functionality of FileAppender. As a result Support
   for stream and console printing has been deprecated in FileAppender. [**]

 - The FileAppender now correctly outputs the header and footer of its
   layout. This problem was reported by too many users to list here. [*]

 - Appenders and Layouts now get to see the raw message object in
   LoggingEvent not just its rendered form. The access modifiers of
   some LoggingEvent fields were changed so that they can be accessed
   in less error-prone ways. Thanks to Jim Cakalic and Anders Kristens
   for their valuable advice. [*]

 - Added getLayout(), getErrorHandler(), and getFilter() to the
   Appender interface. [*]

 - Added getOption(key) method to the OptionHandler interface and modified
   implementations of it as appropriate. [*]
 
 - Added the much awaited DailyRollingFileAppender. [*]

 - The structure of the distribution changed somewhat. The log4j.jar
   files can be found under dist/. The javadoc directory has been
   moved to docs/api/. We are now totally dependent on ANT to perform
   all the steps involved in creating a release, including
   compilation, jar file creation, generation of the javadocs, and for
   the creation of the distribution tar and zip files. [*]

 - Removed org/apache/log4j/varia/ResilientFileAppender.java which was
   bogus to begin with. [*]

 - XMLLayout will now mark some output as <![CDATA .. [[> so that it
   does not get interpreted by the XML parser. This was suggested by
   Mathias Bogaert like a long list of other fixes. [*]

 - Corrected a bug in CyclicBuffer.resize method that would not update the
   next insertion point. Thanks to Ole Bulbuk for accurately reporting
   the bug. [*]
        
 - The LoggingEvent class now supports serialization of priorities
   derived from the org.apache.log4j.Priority class. [*]
 
 - Improved the search method for finding the "log4j.properties" file in
   the static initializer of Category class. Thanks to Calvin Chan for
   supplying a better method. [*]

 - The code handling the FCQN (formerly instanceFQN) parameter was
   cleaned up. There is now a well-established and simple manner for
   sub-classes of Category (or wrapper classes) to define the FCQN
   variable: just define a static variable, say FCQN, consisting of
   the fully qualified class name of the subclass or wrapper, supply
   this variable as an argument to forcedLog method if and when
   the sub-class or wrapper invokes that method. [*]

 - Made the instanceFCQN an instance variable instead of a class
   static in Category.java. In related move, the Category constructor
   now takes an additional argument setting the instanceFCQN. This
   makes life less miserable for Category subclasses. [*]

 - Corrected a bug in the OptionConverter.instantiateByClassName
   method that would not return the defaultValue in case of error. Thanks
   to Matthieu Verbert for identifying this bug.

 - Corrected the missing stack trace in e-mails generated by the
   SMTPAppender when using certain Layouts. [*]
                
 - Updated the "Adding Conversion Characters to PatternLayout"
   document to reflect the latest changes to the code. Also added the
   org/apache/log4j/examples/appserver directory containing the
   associated example code. [*]

 - Added the BufferSize option to the AsyncAppender. [*]

 - Eliminated the SecurityExceptions thrown in Applets.  Thanks Timur
   Zambalayev for reporting this bug. [*]

 - Fixed the erroneously thrown IOInterruptedException when the AsyncAppender 
   was closed. Thanks to Tom Palmer for accurately reporting this bug. [*]

Best regards, Ceki Gülcü