| |
| |
| [*] 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. |
| |
| June ??, 2001 |
| |
| - Release of version 1.1.2 |
| |
| - Corrected a problem with the static initializer of the Category |
| class which would use the wrong class loader to search for the |
| log4j.properties file. The search algorithm has been also |
| simplified. The preferred method to specify the automatic |
| configuration file is setting the log4j.configration system |
| property. [*] |
| |
| - Documentation improvements. [*] |
| |
| - Enhancements to the org.apache.log4j.examples.appserver package. [*] |
| |
| - Corrected a bug in the way the NTEventLogAppender printed |
| exceptions. [*] |
| |
| May 20, 2001 |
| |
| - Release of version 1.1.1. |
| |
| - Added missing custom priority support in PropertyConfigurator. [*] |
| |
| - Made a number of fields protected instead of default access in |
| SMTPAppender. [*] |
| |
| May 19, 2001 |
| |
| - Release of version 1.1. |
| |
| - This release has the same code as 1.1b7. It differs only in a few minor |
| documentation changes. |
| |
| May 9, 2001 |
| |
| - Release of version 1.1b7 |
| |
| - Made BasicConfigurator disable methods static as they were in log4j |
| 1.0.4. Thanks to Francisco Marin for reporting the bug. [*] |
| |
| - Corrected a two related deadlock problems introduced while fixing |
| bug 1505. Thanks to joelr@viair.com for reporting the problem. [*] |
| |
| - The configureAndWatch methods in Configurators did not close the |
| configuration file, preventing its editing. See bug 1686. [*] |
| |
| - In DOMConfigurator.setParameter special charater conversion now |
| preceeds variable substitution. This change was suggested by Steven |
| Velez. The vast majority of users should be oblivious to it. [*] |
| |
| - The TextPaneAppender is no longer maintained and has been |
| removed. It is still available under the contribs/ |
| directory. This change has been discussed in the log4j mailing |
| lists and no one objected to the removal of the TextPaneAppender |
| class. |
| |
| April 26, 2001 |
| |
| - Release of version 1.1b6 |
| |
| - Aaron Greenhouse from Carnegie Mellon SCS found a series of |
| multi-threading related bugs in Category and AsyncAppender. See bug |
| ids 1505 and 1507 in our bug database for examplary bug |
| reports. They are worth the detour. [*] |
| |
| - InvalidJarIndexException is only available in JDK 1.3. Referring |
| to this exception type caused log4j 1.1b5 to break on earlier JDKs. |
| We now avoid referring to it. [*] |
| |
| - Added PriorityRangeFilter by Simon Kitching. See the Threshold |
| option in AppenderSkeleton for a more convenient alternative. [*] |
| |
| April 22, 2001 |
| |
| - Release of version 1.1b5 |
| |
| - In HTMLLayout, the Title option sets the HTML document |
| title (<title>...<title>). [*] |
| |
| - Corrected an important performance bug in LocationInfo. Hein Couwet |
| and kr@it-practice.dk have independently identified the bug. This is |
| yet another example of the difference made by the number of eyeballs |
| studying source code. [*] |
| |
| - Corrected the incorrect value returned by LocationInfo.getClassName |
| method when running under IBM Visual Age. Thanks to Mathias |
| Rupprecht for supplying the relevant patch. [*] |
| |
| - Corrected a bug where the build.sh file in the distribution would be in |
| DOS CRLF format. Thanks to ma.darche@free.fr for reporting the |
| problem. [*] |
| |
| - Corrected InvalidJarIndexException thrown in applets while |
| searching for the default log4j configuration file. Thanks to |
| Michael Lundahl for reporting this bug. [*] |
| |
| - Added missing PropertySetterException class to log4j-core.jar. |
| Thanks to ma.darche@free.fr for reporting this bug. [*] |
| |
| April 20, 2001 |
| |
| - Release of version 1.1b4 |
| |
| - Mathias Bogaert observed that in version 1.1b3 the search algorithm |
| for the resource used in automatic log4j configuration was |
| different than in 1.0.x. Beta4 uses a more powerful mechanism which |
| is also compatible with 1.0.x. [*] |
| |
| - Paul Glezen correctly observed that if log4j is deployed in a |
| client/server mode where multiple log4j clients log to a log4j |
| server, all hosts must be upgraded to version 1.1 in one go because |
| the internal LoggingEvent class used in client/server communication |
| changed in log4j 1.1. |
| |
| April 18, 2001 |
| |
| - Release of version 1.1b3 |
| |
| - Added a RollingFileAppenderBeanInfo class that fakes the |
| maxFileSize JavaBeans property as a String type instead of a long. |
| This allows us to resuscitate setMaxFileSize(long) method that was |
| removed in 1.1b2 breaking 100% backward compatibility. This addition |
| restores 100% backward compatibility. [*] |
| |
| 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(boolean) 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 although 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. [*] |
| |
| January 12th, 2001 |
| |
| - Release of version 1.0.4 (the 20th major release) |
| |
| - Corrected a serious bug in Hierarchy.java that would cause a |
| NullPointerException depending on the order of instantiation of |
| categories. Thanks to Wolfram Gewohn for reporting this bug. [*] |
| |
| - Corrected a bug in the getOptionsStrings method of SMTPAppender |
| that omitted to mention the EvaluatorClass option. Thanks to Mark |
| Balster for reporting this bug. [*] |
| |
| January 11th, 2001 |
| |
| - Release of version 1.0.3 (the 20th major release) |
| |
| - Fixed a NullPointerException occurring in AsyncAppender after |
| invoking Category.shutdown. Thanks to Frank-Olaf Lohmann for |
| reporting this bug. [*] |
| |
| - Modified the OptionConverter.selectAndConfigure method to take an |
| extra argument of type Hierarchy. This method is used internally |
| and should not affect most users. [*/**] |
| |
| - Added the warn method to LogLog which is used internally by log4j |
| to report on itself. [*] |
| |
| - Displaced a number of HTML files under the docs directory. The new |
| structure is compatible with the jakarta site and results in a |
| more consistent navigation experience. [*] |
| |
| - Made a few improvements in the javadocs. [*] |
| |
| January 11th, 2001 |
| |
| - Release of version 1.0.2 (the 20th major release) |
| |
| - Added the missing build.inc file to the distribution. No code |
| changed. |
| |
| January 10th, 2001 |
| |
| - Release of version 1.0.1 (the 20th major release) |
| |
| - This version corrects some documentation and build script bugs; |
| code has not changed. |
| |
| January 8th, 2001 |
| |
| - Release of version 1.0 (the 20th major release) |
| |
| - Package hierarchy now starts at org.apache.log4j. [***] |
| |
| The following perl command can help in the transition: |
| |
| > perl -p -i.bak -e "s/org.log4j/org.apache.log4j/;" file1.java .. fileN.java |
| |
| - Added the fatal() family of methods to the Category |
| class. Moreover, 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 minimal and |
| few users should suffer from these changes. [**] |
| |
| - Removed the methods setRootPriority, getRootPriority as these |
| methods were redundant and had been previously deprecated. [**] |
| |
| - Removed the DOM Level 2 dependency in DOMConfigurator. This makes |
| log4j XML configurable using Sun's parser or Apache's Xerces. [*] |
| |
| - The static initializer of the Category class now takes the |
| log4j.configuration system property to search for its configuration |
| file. The type of the configurator used to parse the configuration |
| file depends on the value of the log4j.configuration system |
| property. [*] |
| |
| - Enhanced the PropertyConfigurator and DOMConfigurator to support |
| customisation of independent Hierarchy instances. 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 options *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 |
| backward compatible but requires recompilation of old client |
| code. Thanks to Michael Smith for noting the recompilation |
| requirement. [**] |
| |
| - 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. [*] |
| |
| - Added 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. [*] |
| |
| November 30, 2000 |
| |
| - Release of version 0.9.1 (the 19th public release) |
| |
| - Corrected a typo making NTEventLogAppender.dll register the wrong |
| category message file. Thanks to Peter Hayes for accurately |
| reporting this bug. [*] |
| |
| - The DOMConfigurator and PropertyConfigurator can now automatically |
| detect modified configuration files and re-read them. [*] |
| |
| - Added AsyncAppender which buffers log requests and serves them |
| at a later time. AsyncAppender can increase logging performance |
| tremendously if logging operations are interspersed with long |
| and blocking non CPU-intensive operations, typically I/O or network |
| access. For CPU intensive applications, using the AsyncAppender |
| will actualy degrade logging performance by 10 to 25 percent. [*] |
| |
| - The log4j.dtd has been modified to allow appenders to refer to |
| other appenders by IDREF. [*] |
| |
| - The DOMConfigurator has been modified to take advantage of ID/IDREF |
| attributes when referring to appenders. This change requires a |
| DOM Level-2 API compliant parser. DOM Level-2 java bindings are |
| available at |
| http://www.w3.org/TR/1999/WD-DOM-Level-2-19990923/java-binding.html. |
| |
| - Added the configure(String filename) method to DOMConfigurator. |
| This method requires the presence of a JAXP compatible parser. |
| |
| At this time, the only DOM2 and JAXP compatible parser seems to be |
| the Apache xerces parser. |
| |
| - Added the PriorityMatchFilter allowing filtering by exact priority |
| match. This was a common request by users. [*] |
| |
| - The configuration of a category is now an atomic operation. This |
| ensures that log requests are not lost while configuration is in |
| progress. Anders Kristensen was to first to observe the potential |
| problems in non-atomic configurations. [*] |
| |
| November 20th, 2000 |
| |
| - Release of version 0.9.0 (the 18th public release) |
| |
| - The "log4j" element has been renamed to "configuration" in the |
| log4j DTD. This change requires that log4j configuration files |
| written in XML be modified. Since the log4j element figures only |
| once in the XML file, this change should take little time. [**] |
| |
| - ResourceBundles are now category instance specific and no longer |
| class static. Moreover, like other properties resource bundles |
| are inherited from the category hierarchy. [**] |
| |
| - The jar files log4j.jar and log4j-full.jar now contain versioning |
| information in their respective manifest files. [*] |
| |
| - Corrected an inconsistency in the NTEventLogAppender which broke it. |
| |
| - Fixed a bug where configuration files were not parsed correctely |
| due to trailing spaces in option values as returned by |
| java.util.Properties. Trailing spaces are now removed from option |
| values. This bug was quite disconcerting because the |
| trailing spaces cannot be seen without careful examination of the |
| configuration file. [*] |
| |
| - Added the XMLLayout. |
| |
| The output of the XMLLayout consists of a series of log4j:event |
| elements. It does not output a complete XML file. The output is designed to |
| be included as an external entity to form a well-formed XML file. [*] |
| |
| - Added a new abstract class org.log4j.helpers.DateLayout. The TTCCLayout |
| now extends DateLayout. [*] |
| |
| - Corrected a rather subtle performance bug in the buffer management code |
| in PatternLayout. Thanks to Vladislav Dutov and Constantine |
| A. Plotnikov for for insisting on the correction of this bug. [*] |
| |
| - Created a new package called org.log4j.spi. This new package |
| holds classes that are hidden from the casual user but are needed |
| to extend log4j. [*] |
| |
| - Added org.log4j.varia.ExternallyRolledFileAppender to handle |
| externally triggered file rollovers. [*] |
| |
| - Added support for multiple hierarchy trees. [*] |
| |
| - PatternLayout can now be subclassed to support new conversion |
| patterns. [*] |
| |
| - Extended the DOMConfigurator and the log4j DTD to properly handle |
| sub-classing of Category and Priority classes. |
| |
| There have been also minor adjustments to other classes to handle |
| sub-classing. These changes should be invisible to users. |
| |
| All categories except the root category can be sub-classed and also |
| assigned priorities sub-classing org.log4j.Priority. |
| |
| The root category always exists and CANNOT be subclassed. |
| |
| The ProppertyConfigurator remains unchanged. Thus, it does not |
| handle extensions of the Category class. [*] |
| |
| - Added filter support in appenders. The DOMConfigurator and the |
| log4j.dtd have been enhanced to support filters. [*] |
| |
| - Added error handling support to appenders. The DOMConfigurator and the |
| log4j.dtd have been enhanced to support filters. [*] |
| |
| - Added support for correct interpretation of location information in |
| IBM's Visual Age environment. Thanks to Wolf Siberski for supplying |
| the relevant patch. [*] |
| |
| - Added getAdditivity method to Category. This feature was requested |
| by Constantin Mitran. (mitran at ecircle.de) [*] |
| |
| August 27, 2000 |
| |
| - Release of version 0.8.5b. |
| |
| - Corrected multiple bugs in default initialization code of |
| Category class. Thanks to Jeff Turner for identifying and supplying |
| corrective patches. [*] |
| |
| August 24, 2000 |
| |
| - Release of version 0.8.5a. |
| |
| - Added the %n conversion character to PatternLayout so that a line |
| separator can be specified in a platform independent way. [*] |
| |
| - In 0.8.5 internal Priority integer values were decoupled from the |
| Unix Syslog values. This broke SyslogAppedder. A new function |
| Priority.toSyslogInt is introduced to solve this bug. [*] |
| |
| Corrected a bug where the internal prtar tzvf iority integer |
| |
| August 23, 2000 |
| |
| - Release of version 0.8.5. |
| |
| - All log4j internal output is now prepended with the string |
| "log4j: ". This makes is easier to differentiate log4j internal |
| logs from messages output by other sources. [*] |
| |
| - Sub-classes of Category class must now specify their fully |
| qualified name when constructing logging events. This allows the %C |
| conversion specifier in PatternLayout to work properly even with |
| sub-classes or wrappers of Category. [*] |
| |
| - Added the method disableDebug to BasicConfigurator. This method |
| disables all print requests of debug priority regardless its |
| category. Similar methods disableInfo, disable, disableAll and |
| enableAll have also been added. Disable type methods can be |
| overriden by setting the log4j.disableOverride system property. |
| |
| Calling BasicConfigurator.disableInfo is equivalent to the now |
| deprecated flagAsShippedCode method. [*] |
| |
| - Given the above changes, the system property |
| log4j.shippedCodeFlagOverride is no longer honored. [**] |
| |
| - It is now possible to sub-class Category. The sub-classes may |
| continue to adhere to the category hierarchy. This was a frequently |
| requested feature. [*] |
| |
| - Corrected a problem with the additivity flag being ignored in |
| categories without appenders. This bug was discovered by Anders |
| Kristensen. [*] |
| |
| - Added a method BasicConfigurator.resetConfiguration to reset the |
| log4j environment. This method should be used sparingly. [*] |
| |
| - At the initialization of the Category class, the file |
| log4j.properties will now be searched from the search path used to |
| load classes. If the file can be found, then it is fed to the |
| PropertyConfigurator.configure(java.net.URL) method. [*] |
| |
| - Failing to access system properties within the static initializer |
| of BasicConfigurator class is no longer reported as an error but as |
| a debug message. Thanks to Gilles Schlienger for reporting this |
| problem with applets. [*] |
| |
| - Corrected a bug which caused infinite loops when using conversion |
| patterns with a single element, fortunately under very rare |
| circumstances. This bug was first reported by Igor Potraev, the |
| author of log4p. It was independently reported by Joe Haberl from |
| IBM Global Services. [*] |
| |
| - Added a mechanism to lazily remove references to dead threads in |
| the NDC class. Indeed, in previous versions calling NDC.pop within |
| a thread but forgetting to call to NDC.remove before exiting (that |
| thread) resulted in a memory leak. [*] |
| |
| - Corrected a huge memory leak in SocketAppender. This leak was due |
| to the ObjectOutputStream indefinitely holding a reference for each |
| written to the stream. Thanks to Dan MacDonald for very accurately |
| describing this bug. [*] |
| |
| - The log and l7dlog methods in Category no longer ignore the shipped |
| code flag. This bug was reported by Mario Schomburg. [*] |
| |
| - Added missing NDC information to LoggingEvent.writeObject |
| method. [*] |
| |
| - Corrected handling of SocketException in SocketNode. Thanks to |
| Gerald Gutierez (ggutierez@emobiledata.com) for reporting this and |
| the previous problem. [*] |
| |
| - Phased out custom shell scripts to build java documentation and jar |
| files in favor of Jakarta's ANT. It was becoming a nuisance to keep |
| the ANT build file in sync with the custom shell scripts. [*] |
| |
| |
| May 11, 2000 |
| |
| - Release of version 0.8.4d. |
| |
| - The NT EventViewer no longer complains about missing message 4096. |
| |
| - Minor corrections in documentation. |
| |
| - Added missing icons GIFs into the distribution. |
| |
| - SocketNode now attempts to close the socket when exiting. Thanks to |
| Moses Hohman (mmhohman@rainbow.uchicago.edu) for noting this. |
| |
| - Removed the com.ibm.log4j from the javadoc directory. This seems to |
| confuse VAJ. Thanks to Steve Ashcroft for reporting this problem. |
| |
| May 5, 2000 |
| |
| - Release of version 0.8.4c. |
| |
| - As a result of the infinite loop problem (see next item), added |
| over 800 new test cases to stress-test the code in CategoryFactory |
| class where category creation occurs. [*] |
| |
| - Under certain rare circumstances the Category.getInstance method |
| entered an infinite loop. Thanks to Mario Schomburg from IBM Global |
| Services / Hannover for identifying this problem and proposing a |
| patch. [*] |
| |
| - DOMConfigurator and the log4j.dtd were out of sync on the type of |
| the priority directive. As a result, priority directives all |
| defaulted to DEBUG. Thanks to Peter (petervt@users.sourceforge.net) |
| for accurately reporting this bug. [*] |
| |
| - Minor additions to the FAQ. [*] |
| |
| - Added the NumberCruncher example showing how the NDC class can be |
| used to distinguish output from different clients. [*] |
| |
| - Added the %x conversion specifier to the TTCC_CONVERSION_PATTERN in |
| the PatternLayout class. This is consistent expected output of |
| Trivial.java example. Thanks to Jerome (schrom@users.sourceforge.net) |
| for reporting this bug. [*] |
| |
| May 3, 2000 |
| |
| - Release of version 0.8.4b. |
| |
| - The value of the additivity option would not be parsed properly by |
| the ProperytConfigurator if the line containing the option |
| contained trailing spaces. [*] |
| |
| - Release of version 0.8.4a. |
| |
| - The localized logging methods (l7dlog) omitted priority based |
| evaluation and erroneously logged all requests. [*] |
| |
| May 1, 2000 |
| |
| - Release of version 0.8.4. |
| |
| - The close method was added to the Appender interface allowing |
| appender implementations to release any resources they may have |
| allocated. [*] |
| |
| - The package naming scheme of changed from "com.ibm.log4j.*" to |
| "org.log4j.*". The new naming reflects the open source nature of |
| the project and is consistent with the URL http://www.log4j.org. [***] |
| |
| - Added internationalization support. See the newly introduced l7dlog |
| methods in Category class. [*] |
| |
| - In the FileAppender, the File option now admits variable |
| substitution. For example, if "java.home" system property is set |
| to /home/xyz and the File option is given the value |
| "%{java.home}/test.log", then File option will be interpreted as |
| "/home/xyz/test.log". |
| |
| Thanks to Avy Sharell (sharell@online.fr) for contributing this |
| feature. [*] |
| |
| - SocketAppender is now officially part of the package. It is capable |
| of sending logging events to a remote SocketNode. The SocketNode |
| logs events according to server (local) policy. For example, a |
| client can log events to a local file and also send them to a |
| remote server (a SocketNode). This server can log the event to any |
| number of files, to the console, to any number of TextPaneAppenders |
| and even re-transmit the event to another server, and so forth. |
| |
| This paradigm is common in most logging systems, e.g. Syslog and NT |
| Event Log. Many thanks to Andrew Harrison for showing a way to |
| actually implement the paradigm. [*] |
| |
| - The Category.callAppenders method now accepts a LoggingEvent |
| instead of creating one itself. This was necessary to accommodate |
| events generated at a remote client. [*] |
| |
| - LoggingEvent class changed slightly to support remote logging. The |
| category field (a Category) has been replaced by the categoryName |
| field (a String). [*] |
| |
| April 14, 2000 |
| |
| Release of version 0.8.3b |
| |
| - Corrected a bug in Category.removeAppender(String) which would |
| never remove the desired appender. Thanks to Moses Hohman for |
| reporting this bug. |
| |
| Release of version 0.8.3a |
| |
| - Corrected a bug RollingFileAppender which would throw an uncaught |
| exception in case output file could not be opened for |
| writing. Thanks to Vinay Aggarwal for signaling this problem. |
| |
| April 13, 2000 |
| |
| - Release of version 0.8.3. |
| |
| - The log4j.override key defined in BasicConfigurator has been |
| renamed to log4j.shippedCodeFlagOverride. [**] |
| |
| - The getCurrentCategories method in the Category class would not |
| return the correct value. Thanks to Timothy Potter |
| (tpotter@agency.com) for reporting this problem. [*] |
| |
| - Appenders now admit a priority threshold as an option. All requests |
| with a priority lower than the appender's threshold priority are |
| ignored by the appender. [*] |
| |
| - Integrated Christopher Taylor's DOMConfigurator parsing XML |
| configuration files. [*] |
| |
| - The jar file log4j-net.jar has been replaced by log4j-full.jar. It |
| contains DOMConfigurator.class in addition to the com.ibm.log4j.net |
| package. [**] |
| |
| - Added support for the ANT build tool. Thanks to Christopher Taylor |
| for supplying the build.xml file. ANT is available form |
| http://jakarta.apache.org. [*] |
| |
| - FileAppender's File option now accepts the values "System.out" or |
| "System.err". If one these values is suppiled in a configuration |
| file then the output is directed to the corresponding stream. |
| Moreover, the default constructor of FileAppender no longer sets |
| System.out as an output target nor does it define a default |
| layout. [*] |
| |
| - Added caller class (C), caller file name (F), caller line number |
| (L), caller method name (M) conversion specifiers to the |
| PatternLayout class. |
| |
| The category conversion specifier now takes an optional precision |
| modifier allowing the user to control the number of right most |
| components in the category name that will be printed. |
| |
| Corrected a bug occuring when the caller file name and line number |
| information were unavilable due to JIT compilation. In that case, |
| the PatternLayout would not properly use the rest of the available |
| location information. [*] |
| |
| The above enhancements and bug-fixes originate from comments by |
| Nelson Minar (nelson@monkey.org). |
| |
| March 23, 2000 |
| |
| - Release of version 0.8.2. |
| |
| - The SimpleLayout and TTCCLayout are replaced by the PatternLayout |
| in the log4j.jar file to keep its size small. These two layouts are |
| still part of the package. |
| |
| - The PatternLayout class is introduced. This new layout is |
| configurable using a conversion pattern which is parsed at |
| runtime. This allows the user to choose the output layout without |
| writing any code and only at a marginal performance cost compared |
| to the dedicated layouts such as SimpleLayout and TTCCLayout. The |
| PatternLayout also allows the user to determine minimum and maximum |
| field lengths. |
| |
| The PatternLayout was written by Jim Cakalic |
| (jim_cakalic@na.biomerieux.com). [*] |
| |
| - All internal components now use LoggingEvent instances to specifiy |
| logging information. |
| |
| - Corrected a problem with a missing variable initialization in |
| SyslogAppender. This caused NullPinterException to be thrown when |
| logging exceptions. |
| |
| Added a default constructor to SyslogAppender. The lack of this |
| constructor caused PropertyConfigurator to throw a |
| java.lang.InstantiationException when the appender type was set to |
| be SyslogAppender. |
| |
| Thanks to Yves Bossel (ybossel@opengets.cl) for accurately |
| identifying these bugs. |
| |
| Modified some other related option handling code in |
| SyslogAppender. [*] |
| |
| - Made NDC.get public access instead of default access. Thanks to |
| Y. J. Chun (monac@softonnet.com) for reporting this problem. [*] |
| |
| - PropertyConfigurator now parses the additivity option for |
| categories. [*] |
| |
| - Corrected the value of the ADDITIVITY_PREFIX constant to match the |
| documented value, that is "log4j.additivity". [**] |
| |
| - Corrected a really bad bug where System.out would be closed when |
| PropertyConfigurator.configure was called. Thanks to Christopher |
| Taylor (cstaylor@pacbell.net) for tracking and reporting this bug. [*] |
| |
| - The PropertyConfiguator now prints debug messages if the flag |
| "log4j.configDebug" is defined in the configuration |
| file. Previously, only if the system property "log4j.configDebug" |
| was set would debug messages be printed. A question by Shawn |
| Kircher (skircher@vninet.com) induced this change. [*] |
| |
| - In AbsoluteTimeDateFormat, DateTimeDateFormat and ISO8601DateFormat |
| the separator between the seconds and milliseconds has been changed |
| to comma from full stop, in order to be compliant with ISO8601's |
| preferred sign. Thanks to Jim Cakalic |
| (jim_cakalic@na.biomerieux.com) for pointing out this discrepancy |
| with the standard. [*] |
| |
| - Corrected a bug where RollingFileAppender would not work |
| properly on Windows systems. Thanks to Heinz Richter |
| (heinz.richter@ecmwf.int) for noting this problem. |
| |
| February 19, 2000 |
| |
| - Release of version 0.8.1. |
| |
| - Core classes are now independent of the format of the options |
| file. Configurable core classes implement the OptionHandler |
| interface. OptionHandlers allows configurators to learn the |
| relevant option names. The configurator feeds option values to the |
| OptionHandler which configures itself. |
| |
| As a result of these changes, the Init class has been broken down |
| to two separate classes: the BasicConfigurator and the |
| PropertiesConfigurator. [**] |
| |
| An XML configurator for 0.8.0 has been already written by |
| Christopher Taylor (cstaylor@pacbell.net). |
| |
| - Added multiple appender support per category. The appenders follow |
| the category hierarchy, i.e. a child category inherits the |
| appenders of its parents. |
| |
| - Added an assert() method to the Category class. Steven Marcus |
| (srnm@awaretechnologies.com) requested this addition. [*] |
| |
| - Atomatic stack printing is no longer supported. This was an unused |
| and unreliable feature which unnecessarily complicated the |
| code. [*] |
| |
| - log4j now emits a single warning message when no appender to write to |
| could be found. This is typically the case when the user forgets |
| to configure the log4j environment. This change was suggested by |
| Jim Cakalic (jim_cakalic@na.biomerieux.com). [*] |
| |
| - RollingFileAppender adds file roll over capability--implemented by |
| Heinz Richter (heinz.richter@ecmwf.int). [*] |
| |
| - Corrected a bug where a java.lang.NoClassDefFoundError would be |
| thrown because com.ibm.log4j.helpers.SyslogTracerPrintWriter was |
| not included in log4j.jar. Thanks to Jim Cakalic (jim_cakalic@na.biomerieux.com) |
| for signaling this bug. [*] |
| |
| February 9, 2000 |
| |
| - Release of version 0.8.0. |
| |
| - There has been an important API changes. The Log, NOPLog and ILog |
| classes have been removed. Their functionality has been migrated to |
| the Category class. [***] |
| |
| In this release, instead of writing |
| |
| ILog.debug(CAT, "Some message."); |
| |
| one will write |
| |
| CAT.debug("Some message."); |
| |
| Arndt Schoenewald <arndt@ibm23093i821.mc.schoenewald.de> observed that |
| one could use the Category objects directly for logging. |
| |
| - It is no longer possible to instantiate Category objects directly. |
| Instead, one would use the factory method |
| Category.getInstance(String name). [***] |
| |
| There category instantiation code was moved to CateogryFactory |
| class. This class has package visibility and remains hidden from |
| the user. |
| |
| This stylistic improvement was suggested by Luke Blanshard |
| (luke@quiq.com). |
| |
| - The Init class offers methods to initialize the log4j |
| environment. The Init.flagAsShippedCode method replaces the NOPLog |
| class. |
| |
| - Changes in the documentation to reflect the API changes. |
| |
| - The NDC.cloneStack and inherit methods now tolerate null-stacks. [*] |
| |
| |
| January 29, 2000 |
| |
| - Release of version 0.7.5. |
| |
| - TTCCLayout now takes a java.text.DateFormat object as a |
| parameter. The task of formatting the date is delegated to this |
| object. |
| |
| Added four classes extending the java.text.DateFormat class. These |
| are RelativeTimeDateFormat, AbsoluteTimeDateFormat, |
| DateTimeDateFormat and ISO8601DateFormat classes. |
| |
| Thanks to Arndt Schoenewald <arndt@ibm23093i821.mc.schoenewald.de> |
| for suggesting the ISO8601 date format. |
| |
| These four classes can be parametrized with a particular |
| TimeZone. The TTCCLayout class now accepts a new configuration file |
| option called "TimeZone". |
| |
| These four DateFormats are less malleable than the |
| java.text.SimpleDateFormat but they are also much faster. |
| |
| As a consequence of these changes, the setRelativeTime, |
| setDatePrinting methods in TTCCLayout have been removed along with |
| the associated configuration file options RelativeTime, |
| DatePrinting and TimePrinting. [**] |
| |
| The current code is inspired by code contributed by |
| Heinz Richter (heinz.richter@ecmwf.int). |
| |
| - The Log.emerg method has been deprecated. If you use statements of |
| EMERG priority, please use the Log.log form instead. [**] |
| |
| - Added getDepth and setMaxdepth methods to the NDC class. This makes |
| it easier to manage the nested context depth especially when |
| callees push but forget to pop. |
| |
| - Moved the documentation in com/ibm/log4j/package.html to |
| com/ibm/log4j/overview.html. Many users were failing to read the |
| com/ibm/log4j/package.html description due to the unfortunate |
| layout of the text. Hopefully more people will read the package |
| overview in its present location. |
| |
| - Added the com.ibm.log4j.net package for doing remote logging using |
| TCP sockets. This is still experimental code. |
| |
| - Added new debug, .., emerg methods that do not require a category |
| parameter. They assume the "root" category, that is the decision to |
| whether print or not is made by comparing the statement's priority |
| with the default priority. [*] |
| |
| January 21, 2000 |
| |
| - Release of version 0.7.4. |
| |
| - Added a new ILog.init method accepting an Appender and a |
| configuration file as parameters. |
| |
| - FileAppender's setWriter and setFile methods where not instantiating |
| a new tracer. This caused stack traces to be lost! SyslogAppender |
| had a similar problem. [*] |
| |
| - The FileAppender and SyslogAppender where not calling the layout's |
| readConfig method to set layout specific options. Thanks to Heinz |
| Richter (heinz.richter@ecmwf.int) for reporting this bug. [*] |
| |
| - Corrected a bug in Log.log() method where the appender was always |
| called with Priority.DEBUG. Thanks to Oliver Boehm |
| (Oliver.Boehm@abaxx.de) for reporting this bug. [*] |
| |
| January 14, 2000 |
| |
| - Release of version 0.7.3. |
| |
| - Added Syslog compatibility. One can now choose (at runtime) between |
| remote syslog logging or file logging. [*] |
| |
| Syslog logging performance, although not appalling, is significantly |
| slower than file logging. |
| |
| - Priority class was enriched with the previously missing priorities |
| NOTICE, ALERT and CRIT. The internal constants were also aligned with |
| the syslog counterparts. [*] |
| |
| - Added the Log.log method to support the new priorities. [*] |
| |
| - TracerPrintWriter is now an independent class instead of being a |
| nested top-level class in Tracer. [*] |
| |
| - A number of writers, namely the SyslogWriter, SyslogQuietWriter, |
| SyslogTracerPrintWriter, were added to the helper package. [*] |
| |
| - Log.force method was removed. The various Appender.doAppend |
| implementations take over its functionality. [*] |
| |
| - FileAppender and SyslogAppender now use QuietWriter. QuietWriter is |
| a FilterWriter which hides exceptions and instead emits a single |
| warning message to System.err. [*] |
| |
| - The layout is now an initialization parameter to the appender |
| type. Previously, the layout and the appender where independent |
| parameters to the Log constructor. [**] |
| |
| - Many small improvements and corrections in the documentation. |
| Syslog related documentation remains sparse. |
| |
| - ILog.init() and ILog.init(String configFile) have been changed to |
| call ILog.init(,,,) with "com.ibm.log4j.Log.class" as the first |
| parameter. This makes it easier for people to get familiar with log4j. [**] |
| |
| - Added missing files to the make directory. These files are useful |
| for those wishing to use the log4j make environment. Thanks to "Lee |
| Hall" <LHall@JavaFoundry.com> for reporting this omission. [*] |
| |
| Until recently the make environment failed to compile RMI stubs in |
| a single run. This nagging problem has been corrected thanks to |
| help from Thomas Eirich (IBM Zurich Research Lab). |
| |
| January 4, 2000 |
| |
| - Release of version 0.7.2. |
| |
| - Some users have been rightly complaining about the verbosity |
| TTCCLayout's date output. The full date output is now shortened to |
| "dd MMM YYYY HH:mm:ss.SSS" for example, "06 Nov 1994 08:49:37.459" |
| In addition, users may now choose to print only time information, |
| as in "08:49:37.459". [*] |
| |
| - The package now uses Writer instead of OutputStream as its output |
| target. This makes the log4j code smaller and easier to |
| understand at the cost of a slight performance degradation. As a |
| result of this change a few method names in FileAppender class were |
| changed. [**] |
| |
| - Preliminary experiments with SyslogAppedner and SyslogLayout show |
| that syslog compatibility is not far away. The difficultly is |
| adding syslog compatibility without making radical changes to the |
| current log4j architecture. |
| |
| - Corrected a bug in the NOPLog.createInstance method which always |
| created a Log singleton even if the system property "log4j.logType" |
| was set to NOPLog. Thanks to Robert Gottofrey |
| (Robert.Gottofrey@wdr.com) for reporting this bug and the |
| associated test case. |
| |
| - Removed the inconsistent "Layout" configuration option in |
| Log.readConfig(). This change should be transparent to most |
| users. [*/**] |
| |
| December 20, 1999 |
| |
| - Release of version 0.7.1. |
| |
| - The LogCreationManager class has been removed. Its functionality |
| has been transfered to the createInstance and getInstance methods |
| in the Log and NOPLog classes. The new way of creating instances is |
| both simpler and less error prone although just as flexible. [**] |
| |
| As a result of these changes, the init family of methods in the |
| ILog class have been adjusted to the new way of creating the log |
| singleton. |
| |
| - The Appender interface has been introduced. The method of writing a |
| log statement into an output stream can now be varied by using a |
| different Appender. The new FileAppender offers the same |
| functionality that was previously part of the Log class. [**] |
| |
| - Changed the time format used in TTCCLayout to be of the form "Day, |
| dd MMM YYYY HH:mm:ss.SSS GMT" for example, "Sun, 06 Nov 1994 |
| 22:49:37.459 GMT". This format is almost the same as the format |
| specified in RFC 1123 and also the format recommended in RFC |
| 2616. The only difference is the additional milliseconds |
| information. [*] |
| |
| - The layout specific options were not read from the configuration |
| file due to a missing instruction. Many thanks to Vikram Sridharan |
| (Vikram.Sridharan@alysis.com) to patiently pointing out this |
| omission to an unbelieving maintainer. [*] |
| |
| December 16, 1999 |
| |
| - Release of version 0.7.0. |
| |
| - Version 0.7.0 and above will be distributed under the IBM Public |
| License (IPL). The IPL is an approved open source license (see |
| http://www.opensource.org/licenses/ for a list). It grants similar |
| rights to the previous ALPHAWORKS license agreement, in particular, |
| the right to redistribute and to modify the package. |
| |
| - The Log class can now be parameterized with a Layout object. |
| Layouts determine the format of what is printed, where as the Log |
| class decides when to print and to where. [**] |
| |
| As a result of this modularization, the CGULog and NOPCGULog |
| classes no longer exists. CGULog class has been replaced with the |
| TTCCLayout (Time Thread Context Category). This should make it |
| easier to create new log output formats. |
| |
| Some time in the near future, the Log class will be further broken |
| down to allow different strategies for writing to output streams. |
| |
| - Renamed com.ibm.util.log hierarchy to to com.ibm.log4j. I wanted to |
| do this for some time. I feel release 0.7.0 was the last |
| opportunity to do so. I am sorry for the the trouble caused by this |
| change. [**/***] |
| |
| - New NDC class. This class implements nested diagnostic contexts as |
| suggested by Neil Harrison in the article "Patterns for Logging |
| Diagnostic Messages" part of the book "Pattern Languages of Program |
| Design 3" edited by Martin et al. Nested diagnostic contexts is a |
| nifty feature that was missing up to now. [*] |
| |
| The StressNDC test class seems to break JDK 1.2.2 beta on AIX. On |
| Linux and NT using sun's JDK 1.2.2 it seem to work OK. In any case, |
| tests done with StressNDC and associated perl script seem to |
| indicate that the NDC class is bug-free. |
| |
| - Corrected a date formatting bug in CGULog class where on some |
| environments the wrong month was printed. Thanks to Christopher |
| Williams (Christopher_Williams@mail.northgrum.com) for signaling |
| this bug. Also changed the month format from a number to a three |
| letter abbreviation such as "Jan", "Feb", ..., "Dec". The new |
| format is unambiguous regardless of local date format. [*] |
| |
| December 8, 1999 |
| |
| - Release of version 0.6.2. |
| |
| - Clearer documentation with still much room for improvement. |
| |
| - Corrected a bug in the Tracer class which always used the Unix line |
| separator instead of the system specific separator. Thanks to |
| Vikram Sridharan (Vikram.Sridharan@alysis.com) for singaling this |
| bug. [*] |
| |
| - Corrected a runaway comment which gulped the CGULog.readConfig |
| method. [*] |
| |
| - Added the init family of methods to the ILog class to ease the |
| setup of a basic logging environment. Thanks to Mark Donszelmann |
| (Mark.Donszelmann@cern.ch) for this enhancement. [*] |
| |
| - Just an hour after releasing version 0.6.1 detected and corrected a |
| bug where the Tracer class would correctly print Exception stack |
| trace but not the type of the Exception. Replaced the |
| distribution on www.zurich.ibm.com without changing the version |
| number. I hope nobody is using the intermediary (and buggy) release |
| of 0.6.1. [*] |
| |
| November 16, 1999 |
| |
| - Release of log4j version 0.6.1. |
| |
| - Better documentation with still much room for improvement. |
| |
| - For consistence sake, added setDefaultPriority and |
| getDefaultPriority methods to the Category class and deprecated |
| setDefaultPriority in the Log.class. [**] |
| |
| - Corrected a major bug where if two categories were homonyms the |
| second instance would not be properly initialized. |
| |
| - Increased the speed of Exception logging from about 4000 |
| microseconds to about 1000. It seems that for some people Exception |
| logging is performance critical. Improved implementation is a |
| variant of Nocolai's (XNH@crisplant.com) implementation. [*] |
| |
| November 9, 1999 |
| |
| - Release of log4j 0.6.0 with incomplete documentation. |
| |
| - Added a stress test program to debug the new Category class. It |
| turns out that the test program was as hard to get right as the |
| Category class. Given the favorable results of the stress test I am |
| quite confident that the new class is now bug free. This assumption |
| has been proven to be wrong. See above. |
| |
| - Created a new class called Category to manipulate categories |
| instead of plain Strings. The new class is just as easy to use. |
| However, the evaluation of whether to log or not to log is at least |
| 10 times faster. The NOP class performance remain unaffected by the |
| change. (You can't improve on the performance of an empty function |
| call.) |
| |
| Many thanks to Alex Blewitt "Alex.Blewitt@ioshq.com" for his |
| valuable comments. He was the first to observe that finding Strings |
| in a hash table was an expensive operation. |
| |
| This change will require some recoding on your part. See the FAQ |
| for more details. [***] |
| |
| - Modified the force in Log and CGULog method to use a byte[] buffer |
| instead of a StringBuffer. The old code was clearer but the new one |
| is at least 25% faster. [*] |
| |
| - Added regression testing. |
| |
| - We now enforce a policy where the OutputStream set by |
| setOutputStream is a user managed resource whereas the OutputStream |
| opened using setLogFile is the Log class' responsibility. |
| |
| The setLogFile method now closes any previous OutputStream if only |
| if opened through setLogFile. If the previous OutputStream was |
| opened by the user and set through setOutputStream the previous |
| OutputStream is untouched. |
| |
| Similarly, setOutputStream will close any previous OutputStream if |
| and only if it was opened using setLogFile. |
| |
| - Added a new method logOutputStreamExists to the Log class allowing |
| the programmer to check if there is already an opened stream before |
| trying to set a new one. A stream can be opened as a byproduct of |
| reading the configuration file. |
| |
| - Changed the behavior of the (private) Log.Append method in case of |
| failure to write to the OutputStream. |
| |
| Previously, in case of failure, we reverted to System.err. Now, we |
| emit a warning message and discard all future log messages. The |
| new behavior is consistent with our current unreliable logging |
| semantics. The change prevents an otherwise functional program |
| from failing because the terminal is flooded with logging messages. |
| |
| - Renamed the iLog to ILog to remain consistent with our class naming |
| scheme. The initial intention was to add ILog and deprecate |
| iLog. However, I am running CVS on a fat16 partition, causing |
| serious problems when files differ only in case. |
| |
| - Corrected a bug where the LogFileName was not remembered. Thanks to |
| Jens for signaling this bug. |
| |
| October 28, 1999 |
| |
| - Release of log4j v0.5a |
| |
| - Now the programmer can choose to truncate the log file instead of |
| always appending to it. This functionality was first requested and |
| intially implemented by "Jens Uwe Pipka" jens.pipka@gmx.de. [*] |
| |
| - setLogFile now opens the requested file instead of having the |
| Append function open it later. Cleaned up some related code in the |
| Append function. Although nobody has requested it, there is still |
| no method to close the log file. This is harder to implement |
| reliably than it sounds. [*] |
| |
| - Simplified setLogOutputStream so that it does no longer return the |
| previously set OutputStream. [*] |
| |
| October 27, 1999 |
| |
| - Released log4j v0.5 |
| |
| - Joe Walker (joe@eireneh.com) observed that the |
| LogCreationManager.getSingleton mechanism was cumbersome. There is |
| now a new class iLog (indirect Log) which hides the need to call |
| getSingleton. Performance testing on my 233Mhz Thinkpad shows that |
| this indirection has small performance impact on non-logged calls |
| in the order of 40 nanoseconds. The impact on logged calls is |
| negligible. [*] |
| |
| - Added a jar file to the distribution. The jar file contains only |
| the files you would need to use log but not other classes needed |
| for testing nor examples. |
| |
| - Corrected a bug where CGUNOPLog was not integrated to the Makefile. |
| |
| - Added new public methods isDebugEnabled and isInfoEnabled to allow |
| programmers to check whether a debug/info statement will be logged |
| without incurring the cost of message parameter construction. This |
| addition was suggested by Luke Blanshard Luke@quiq.com. [*] |
| |
| - Renamed the private method evaluate to isEnabled. Also made it |
| final with no apparent speed gains. In addition, made the |
| Log.force method public. [*] |
| |
| - New syntactic sugar debug, ..., emerg, methods to log objects. [*] |
| |
| - Modified the interface to deal with Throwables and not just |
| Exceptions. My thanks to Luke Blanshard for signaling this "bug". [*] |
| |
| - Added more tests to the LogPerformance class. In particular, to |
| test the influence of indirect debug calls. |
| |
| - Added a "make" mini-tutorial for those who want to modify the code. |
| |
| - License updated to standard alphaWorks license allowing |
| modifications to source code. However, this license explicitly |
| requires that modifications be communicated back to alphaWorks. |
| |
| October 15, 1999 |
| |
| - Initial availability on alphaWorks. |
| |
| Refer to the FAQ for the lineage of the package. |
| |
| |