Version | Date | Description |
---|---|---|
1.2.17 | 2012-05-06 | Maintenance release |
1.2.16 | 2010-04-06 | Maintenance release |
1.2.15 | 2007-08-24 | SyslogAppender enhancements, NTEventLogAppender and Maven build. |
1.2.14 | 2006-09-18 | AsyncAppender rewrite, Syslog and SMTPAppender enhancements. |
1.2.13 | 2005-12-04 | TRACE level missing info fixed, ConsoleAppender.follow added to make redirection following an optional behavior. |
1.2.12 | 2005-08-29 | TRACE level introduced, ConsoleAppender modified to follow redirection of System.out |
1.2.11 | 2005-06-18 | JMS MessageRenderer fix |
1.2.10 | 2005-04-28 | Version 1.2.10 was not released following the accepted rules and process of the log4j project and Logging Services Project and was recalled and removed. Please do not use version 1.2.10, it is not an official log4j release. |
1.2.9 | 2004-11-01 | Deprecation of obsolete methods |
1.2.8 | 2003-02-19 | Fixes to XMLAppender, DOMConfiguration, SocketAppender and JDBCAppender. |
1.2.7 | 2002-10-09 | log4j.xml now checked during default configuration. |
1.2.6 | 2002-07-31 | LoggingEvent.getLoggerName() added, JMSAppender enhancements. |
1.2.5 | 2002-07-05 | AsyncAppender.close now closes nested appender. |
1.2.4 | 2002-06-12 | XMLLayout now handles embedded CDATA, JDBCAppender deprecated. |
1.2.3 | 2002-05-24 | SyslogAppender and stack trace fixes. |
1.2.2 | 2002-05-22 | NULL added as synonym for INHERITED in Configurators, Thread context loader used preferentially. |
1.2.1 | 2002-05-17 | Fixed MDC problem when used with AsyncAppender |
1.2 | 2002-05-01 | Initial release of log4j 1.2 |
1.1.3 | 2001-06-19 | Added missing namespace and reduced size of log4j-core.jar. |
1.1.2 | 2001-06-07 | Default initialization improvements |
1.1.1 | 2001-05-20 | Added custom priority support to PropertyConfigurator, SMTPAppender visibility changes. |
1.1 | 2001-05-19 | Minor documentation changes |
1.1b7 | 2001-05-09 | |
1.1b6 | 2001-04-26 | |
1.1b5 | 2001-04-22 | |
1.1b4 | 2001-04-20 | |
1.1b3 | 2001-04-18 | |
1.1b2 | 2001-04-18 | |
1.1b1 | 2001-02-23 | |
1.0.4 | 2001-01-12 | |
1.0.3 | 2001-01-11 | |
1.0.2 | 2001-01-11 | |
1.0.1 | 2001-01-10 | |
1.0 | 2001-01-08 | |
0.9.1 | 2000-11-30 | the 19th public release |
0.9.0 | 2000-11-20 | the 18th public release |
0.8.5b | 2000-08-27 | |
0.8.5a | 2000-08-24 | |
0.8.5. | 2000-08-23 | |
0.8.4d | 2000-05-11 | |
0.8.4c | 2000-05-05 | |
0.8.4b | 2000-05-03 | |
0.8.4a | 2000-05-03 | |
0.8.4 | 2000-05-01 | |
0.8.3b | 2000-04-14 | |
0.8.3a | 2000-04-14 | |
0.8.3 | 2000-04-13 | |
0.8.2 | 2000-03-23 | |
0.8.1 | 2000-02-19 | |
0.8.0 | 2000-02-09 | |
0.7.5 | 2000-01-29 | |
0.7.4 | 2000-01-21 | |
0.7.3 | 2000-01-14 | |
0.7.2 | 2000-01-04 | |
0.7.1 | 1999-12-20 | |
0.7.0 | 1999-12-16 | |
0.6.2 | 1999-12-08 | |
0.6.1 | 1999-11-16 | |
0.6.0 | 1999-11-09 | |
0.5a | 1999-10-28 | |
0.5 | 1999-10-27 | |
initial | 1999-10-15 |
Type | Changes | By |
---|---|---|
log4j 1.2.17 release preparation Fixes 49470. | ||
Configure from an InputStream Fixes 52913. | ggregory | |
JDBCAppender not closed due to SQL Exception while executing an SQL (thanks to Anurag Agarwal) Fixes 51597. | ||
Memoryleak - org.apache.log4j.helpers.ThreadLocalMap Fixes 50486. | ||
DOMConfigurator does not close input stream when configured based on URL. Fixes 48588. | ||
javadoc.jar was missing NOTICE and LICENSE and contained .svn entries. Fixes 49078. | ||
Wrong log levels logged with serialized LoggingEvent. Fixes 50238. | ||
Add org.apache.log4j.rewrite.RewriteAppender and org.apache.log4j.util.UtilLoggingLevel from discontinued receivers companion. Fixes 51766. |
Type | Changes | By |
---|---|---|
log4j 1.2.16 release preparation. Fixes 43313. | ||
Create a public identifier for log4j.dtd ("-//APACHE//DTD LOG4J 1.2//EN") Fixes 42842. | ||
TelnetAppender misses messages when one of many clients disconnect. Fixes 44108. | ||
TelnetAppender throws null pointers at log time when socket couldn't be opened. Fixes 44109. | ||
ThrowableInformation.getThrowableStringRep can return null strings. Fixes 44032. | ||
log4j.dtd defines class attribute for category element, but not for logger. Fixes 43298. | ||
SMTPAppender.setSMTPUserName and others missing @since tags. Fixes 43314. | ||
Request for compile-on-Windows help file in src package. Fixes 43618. | ||
AsyncAppender failing on changing message objects. Fixes 43599. | ||
Subst-mechanism in DOMConfigurator broken. Fixes 43325. | ||
DailyRollingFileAppender may lose messages during failed rollover attempts. Fixes 43374. | ||
Fix mangled source-repository.html. Fixes 43312. | ||
Minor documentation changes. Fixes 43387. | ||
Make javamail, jmx, jms dependencies optional in pom.xml. Fixes 43304. | ||
SocketHubAppender should expose actual port in use to extending classes. Fixes 43874. | ||
SocketHubAppender in the 1.2.16 does not support a scroll back buffer or application property Fixes 44551. | ||
Give log4j threads reasonable names. Fixes 41156. | ||
LocationInfo can report wrong caller when other class names contain logger class name as substring. Fixes 44888. | ||
ErrorHandlerTestCase is not run and does not pass. Fixes 45426. | ||
Agent.java is sole dependency on jmxtools.jar with Java 5+. Fixes 45485. | ||
Eliminate compile dependency on non-redistributable JMS reference implementation. Fixes 44517. | ||
Exception in call to toString of message propagates to caller. Fixes 37182. | ||
Javadoc class index corrupted by JDBCAppender deprecation warning. Fixes 45299. | ||
Improve warning message when log4j is accessed after unload by Tomcat. Fixes 43867. | ||
NullPointerException in NDC.remove after unload by Tomcat. Fixes 45335. | ||
Configuring triggering/rolling policies should be supported through properties. Fixes 36384. | ||
More explanations when hitting WARN No appenders could be found for logger. Fixes 25747. | ||
Use Throwable.getStackTrace to obtain location when running on JDK 1.4 or later. Fixes 45039. | ||
AsyncAppender fails on changing Throwable. Fixes 44745. | ||
Extra NPE error message when using missing appender class with DOMConfigurator. Fixes 44899. | ||
org.apache.log4j.varia.NullAppender lacks static accessor to static instance. Fixes 44555. | ||
Javadoc for Appender.getName implies that the return value will be unique and not null. Fixes 43849. | ||
Weekly rotation problem in Europe. Fixes 40888. | ||
Add OSGi packaging info. Fixes 43282. | ||
InterruptedIOException ignored by log4j. Fixes 44157. | ||
HierarchyDynamicMBean missing unregister MBean Fixes 40246. | ||
Support -Dm2_repo option on Maven build for non-default Maven repository location. Fixes 45635. | ||
2 tests for DateLayout are failing because of ill initialized DateFormat. Fixes 45636. | ||
Incorrect user mailing list URL. Fixes 45659. | ||
NTEventLogAppender.dll for 64-bit editions for Microsoft Windows. Fixes 44386. | ||
Add configuration of ThrowableRenderers and add org.apache.log4j.EnhancedThrowableRenderer. Fixes 45721. | ||
SMTPAppender does not force evaluation of message at request time Fixes 45969. | ||
Support SSL transport in SMTPAppender Fixes 25355. | ||
SMTPAppender should have a sendOnClose option Fixes 45980. | ||
Support %X layout specification to output all MDC key-value pairs Fixes 45982. | ||
Add replyTo attribute to SMTPAppender Fixes 45990. | ||
SMTPAppender does not properly encode subject or content containing non-ASCII characters. Fixes 44644. | ||
Clarify javadoc of Layout.ignoresThrowable. Fixes 46388. | ||
SyslogAppender.append throws exception if layout is not set. Fixes 46271. | ||
QuietWriter.write should check for null argument. Fixes 46144. | ||
LogFactor5 CategoryPath doesn't replace slashes with dots. Fixes 46512. | ||
LoggerDynamicMBean needs to handle a null Appender name. Fixes 46163. | ||
DOMConfigurator.configure(URL) fails on JRE 1.5.0_16. Fixes 45704. | ||
Document system properties used by log4j. Fixes 44357. | ||
log4j is susceptible to exceptions in Exception.printStackTrace. Fixes 44038. | ||
Misuse of "it's" in Javadoc for PatternLayout. Fixes 46741. | ||
Add SMTPAppender.formatBody to simplify extension. Fixes 47142. | ||
Failure when toString() of throwable performs logging in SocketAppender, SocketHubAppender and JDBCAppender. Fixes 46404. | ||
Reading configuration files from a JAR locks the JAR file Fixes 47465. | ||
PropertyConfigurator does not support configuring ErrorHandler. Fixes 38061. | ||
log4j.ignoreTCL should apply to the getResource method in addition to the loadClass method of org.apache.log4j.helpers.Loader. Fixes 47967. | ||
The QuietWriter class does not live up to its published contract. Fixes 46539. | ||
More Debug output for log4j auto-configure requested. Fixes 46983. | ||
Add MDC.clear(). Fixes 47107. | ||
NullPointerException when calling Category.removeAllAppenders(). Fixes 47547. | ||
Allow overriding of flush strategy. Fixes 28647. | ||
Add recommendation to use EnhancedPatternLayout to avoid synchronization issues in PatternLayout Fixes 47350. | ||
Source contains unnecessary imports. Fixes 45481. | ||
Add LoggingEvent.removeProperty Fixes 48159. | ||
Typo ("two three goals") in log4j FAQ Fixes 48187. | ||
Unit tests fail for system dates after 2009-12-31 Fixes 48531. | ||
Download page does not have link to KEYS file Fixes 48604. | ||
Add parameterized logging utility classes LogMF and LogSF from extras companion. Fixes 49812. | ||
Add EnhancedPatternLayout from extras companion. Fixes 48927. | ||
Links to example code broken in the JavaDocs Fixes 48784. | ||
Unused imports and variables in test code cause gcj compile warnings. Fixes 48953. | ||
Unit tests fail on Apache Harmony and gcj due to stack trace expectations. Fixes 49002. | ||
SocketServerTestCase.test8 fails on Apache Harmony. Fixes 49003. | ||
TestLogMF.testDebugDate fails on gcj. Fixes 49004. | ||
TelnetAppenderTest.testIt fails on gcj. Fixes 49005. | ||
Eclipse Java Compiler and gcj do not support -source=1.2. Fixes 49006. | ||
CachedDateFormatTest fails on Apache Harmony. Fixes 49007. | ||
Add %p{-2} pattern to EnhancedPatternLayout to drop two leading elements from name. Fixes 49010. | ||
Add %throwable{n} and {-n} pattern to EnhancedPatternLayout to print n or drop last n lines. Fixes 48902. |
Type | Changes | By |
---|---|---|
log4j 1.2.15 release preparation. Fixes 40951. | ||
Switch to NOPLoggerRepository if application reloading nulls repositorySelector. Fixes 40212. | ||
Add 'application' property support to SocketAppender (from 1.3) Fixes 43202. | ||
Log4JEntityResolver will return null if log4j.dtd can not be found on classpath. Fixes 43200. | ||
HierarchyEventListener.removeAppenderEvent never called. Fixes 37736. | ||
XMLLayout does not escape CDATA sections within NDC or throwables. Fixes 37560. | ||
Added test to confirm that DOMConfigurator.configureAndWatch does configure. Fixes 33502. | ||
Default initialization with XML file halts program if JAXP not available. Fixes 32527. | ||
Add reset option to PropertyConfigurator and DOMConfigurator. Fixes 17531. | ||
Error message always logged to LogLog when calling close on TelnetAppender. Fixes 14350. | ||
Add configurable triggeringPolicy for SMTPAppender. Fixes 32572. | ||
NullPointerException in MDC on Tomcat reload. Fixes 43181. | ||
Notice to use UTF-8 or UTF-16 encoding added to XML and HTMLLayout javadoc. Fixes 34874. | ||
XML and HTMLLayout do not always escape special characters. Fixes 34875. | ||
Optionally render MDC content in XMLLayout Fixes 43078. | ||
Typo in log4j.dtd concerning threshold. Fixes 42694. | ||
ERFATestCase fails on some JDK's. Fixes 42611. | ||
SocketNode can leak Sockets. Fixes 42585. | ||
Migrate to Maven based build and documentation. Fixes 37930. | ||
Prepare Maven release bundles. Fixes 40604. | ||
Eclipse compiler warning cleanup. Fixes 42283. | ||
JRockit VM and java-gcj fail unit tests. Fixes 42281. | ||
SocketAppender does not use FallbackErrorHandler Fixes 21796. | ||
Enhance DOMConfigurator to delegate unrecognized elements to configured object. Fixes 42257. | ||
Add LoggingEvent accessors. Fixes 42108. | ||
InstanceAlreadyExistsException using MBean. Fixes 42017. | ||
Reduce first connection failure severity in SocketAppender Fixes 29227. | ||
SyslogAppender does not limit packets to 1024 bytes. Fixes 42087. | ||
SyslogAppender: Added "header" property which if set to true will cause the appender to produce the HEADER part (timestamp and hostname) of the syslog packet. Default value is false for compatibility with previous behavior. Fixes 41040. | ||
SyslogAppender also now sends any header from the associated layout when activateOptions is called or first logging event is sent and any footer when the appender is closed. Fixes 40161. | ||
SyslogAppender leaks descriptors Fixes 37282. | ||
SyslogAppender assumes all lines start with tab Fixes 40502. | ||
SyslogAppender does not limit packet size to 1024 bytes Fixes 42087. | ||
NTEventLogAppender: Updated NTEventLogAppender.dll which corrects missing event messages and which should work with earlier releases of log4j. NTEventLogAppender.dll also now supports registration and unregistration using regsvr32. If replacing an existing copy of NTEventLogAppender, use "regsvr32 NTDllEventLogAppender.dll" or manually remove the HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Application/Log4J registry key. Fixes 41169. | ||
NTEventLogAppender.dll performs unnecessary code page conversion using code copied from book. Fixes 39437. | ||
PropertyConfigurator.configure(URL) does not close resource stream. Fixes 40944. | ||
In Turkish locale level "info" is not equivalent to "INFO" Fixes 40937. | ||
Javadoc of PatternLayout should use %n in TTCC layout examples Fixes 41339. | ||
Stacktraces of exceptions disappear occassionally Fixes 41219. | ||
Incorrect message when specified custom level class does not implement toLevel Fixes 38680. | ||
Warning when configuring inner-class logger Fixes 41487. | ||
AsyncAppender in 1.2.14 DiscardSummary events create NullPointerExceptions in layouts Fixes 41186. | ||
Add target to generate binary and source compatibility report Fixes 37864. | ||
PropertyPrinter.printOptions breaking signature change in log4j 1.2.9 Fixes 41708. | ||
RollingFileAppender may delete files during rollover Fixes 41735. | ||
XMLConfiguration of loggerFactory does not work Fixes 33708. | ||
SyslogAppender does not limit packet size to 1024 bytes Fixes 42087. | ||
Update source per new ASF Header Policy. Fixes 40755. | ||
DateLayoutTest fails if default Locale is not en_US. Fixes 41373. | ||
Stacktrace may choke on null fields. Fixes 35324. | ||
Add projects.apache.org project descriptor. Fixes 41575. |
Type | Changes | By |
---|---|---|
Monitor deadlock in AsyncAppender. Fixes 38137. | ||
AsyncAppender: Dispatcher should run at normal prio. Fixes 28006. | ||
AsyncAppender wait forever when buffer is full. Fixes 37904. | ||
Add non-blocking option for AsyncAppender. Fixes 38982. | ||
Add SyslogPort option to SyslogAppender. Fixes 39687. | ||
Add cc and bcc addresses to SMTPAppender. Fixes 19125. | ||
Add password authentication to SMTPAppender. Fixes 24969. | ||
NullPointerException in org.apache.log4j.NDC.get. Fixes 40159. | ||
org.apache.log4j.lf5.util.DateFormatManager.setTimeZone assignment error. Fixes 36787. | ||
Monthly logs not generated at midnight with DailyRollingFileAppender. Fixes 38559. | ||
PatternLayout specifier %r is not consistent with documentation. Fixes 40145. | ||
Space after log level causes default level to be used. Fixes 37119. | ||
Bad patterns in ISO8601DateFormat and DateTimeDateFormat. Fixes 39135. | ||
SyslogAppender throws NullPointerException upon misconfiguration. Fixes 35743. | ||
FallbackErrorHandler throws NullPointerException if no loggers are set. Fixes 15501. | ||
Bad documentation for WriterAppender.encoding. Fixes 38564. | ||
NTEventLogAppender not build, tested and placed in distribution. Fixes 37866. | ||
SMTPAppender does not output newlines between stack trace lines. Fixes 38662. | ||
SMTPAppender will not run within sandbox. Fixes 30294. | ||
MDC with SMTPAppender doesn't work. Fixes 16922. | ||
Misspelling in HierarchyDynamicMBean. Fixes 31507. | ||
Additivity not exported by PropertyPrinter. Fixes 35123. | ||
RollingFileAppender, if removed, can cause NullPointerExceptions. Fixes 31003. | ||
AsyncAppender blocks on thread death. Fixes 23021. | ||
NOTICE file added to distribution and jars. Fixes 40412. | ||
Chainsaw of log4j 1.2 does not show TRACE level. Fixes 40378. | ||
TRACE level missing in short introduction to log4j. Fixes 40501. | ||
Update site generation to velocity 1.4 and remove dependency on logging/site project. Fixes 37960. |
Type | Changes | By |
---|---|---|
Location info missing for TRACE level messages. Fixes 36800. | ||
Console appender now behaves as before to fix compatibility problem with JBoss introduced in 1.2.12 release due to fix for bug 31056. Can still be configured to detect changes in the System.out and System.err streams as needed by setting the follow property. Fixes 37122. |
Type | Changes | By |
---|---|---|
Removed final qualifiers on member variables in org.apache.log4j.chainsaw.LoggingReceiver which would cause spurious compiler errors with JDK 1.1 and 1.2 javac compilers. Fixes 36262. | ||
Added a jndi.jar property to the build.xml. Fixes 36267. | ||
Added "release" target to build.xml. Fixes 37268. | ||
Removed references to obsolete documentation. Fixes 36213. | ||
Added protected accessors for member variables topicConnection, topicSession, and topicPublisher. Fixes 35965. | ||
SyslogAppender now checks Layout.ignoresThrowable() just like every other appender. Fixes 34026. | ||
DOMConfigurator would call LogLog.error to report XML validation errors that caused no problems in the interpretation of the configuration file. Fixes 35947. | ||
Fixed the JavaDoc links for the XML sample files. Fixes 14551. | ||
Added getNext/setNext methods to org.apache.log4j.spi.Filter and deprecated public "next" field. This mirrors the same change in the upcoming 1.3 version and, hence, provides a migration path. Fixes 35654. | ||
Added o.a.log4j.Logger.trace(), o.a.log4j.Logger.isTraceEnabled() and o.a.log4j.Level.TRACE Fixes 35711. | ||
Implemented serialization for Level. Fixes 34758. | ||
o.a.log4j.ConsoleAppender would ignore redirections of System.out and System.err that occurred after configuration. Fixes 31056. | ||
o.a.log4j.xml.DOMConfigurator would not properly interpret relative path names in external entity declarations. Fixes 23705. | ||
o.a.log4j.xml.XmlLayout would not properly escape class names that contained '<' or '>'. Fixes 35691. | ||
Use of String.intern() in o.a.log4j.CategoryKey would cause application to slow down. Fixes 35052. | ||
o.a.log4j.FileAppender would not create log file if parent directory did not exist. Fixes 9150. | ||
o.a.log4j.AsyncAppender would deadlock if a unchecked exception occurred in the attached appender causing the dispatch thread to die. Fixes 23021. | ||
Added jdiff target to build.xml. Fixes 35516. | ||
log4j would not build with a JDK 1.5 javac. Fixes 35831. | ||
Added log4j 1.1 compatibility method to o.a.l.helpers.Loader. Fixes 35893. | ||
Additional null terminating character in Windows nteventlog.cpp code. Fixes 34981. | ||
Broken links to J2SE classes in javadocs. Fixes 36332. |
Type | Changes | By |
---|---|---|
o.a.log4j.or.jms.MessageRenderer would not be compiled in the build.jms target. Fixes 34491. |
Type | Changes | By |
---|---|---|
XMLAppender would throw a NullPointerException if the input message was null. Many thanks to David Vandegrift for reporting the bug and to Hendrik Brummermann for supplying the patch. Fixes 11570. | ||
Various versions of Xerces would not parse log4j configuration scripts expressed in XML format. Fixes 12366. | ||
The "removes" buffer used in the flushBuffer() method of JDBCAppender is now cleared, solving the memory leak. Thanks to John Landers for reporting the bug and suggesting the fix. Fixes 14827. | ||
SocketAppender now honors ReconnectionDelay of 0. Many thanks to Scott Schram for reporting the bug and providing the fix. Fixes 15599. |
Type | Changes | By |
---|---|---|
Log4j now searches for the file log4j.xml as well as the file log4j.properties during log4j initialization. |
Type | Changes | By |
---|---|---|
Add of new options in JMSAppender and new command line arguments in JMSSink. | ||
Add new method getLoggerName() in LoggingEvent class. The getLoggerName is the preferred way for accessing the logger name. The public access categoryName field should not be accessed directly. Similarly, added the getLevel method which is now the preferred way of accessing the event's level. The public access level field should not be accessed directly. The javadocs now mark the categoryName and level fields as deprecated. Modified existing appenders to comply with these new directives. | ||
Log4j now will check if a system property named "log4j.ignoreTCL" is set. If it is set, then it will ignore the Thread Context ClassLoader when loading classes. This solves the irritating "appender is not assignable to Appender" messages observed when log4j.jar is loaded by multiple class loaders. The error reporting for this problem was also improved. | ||
Calling the MDC.get method with a null argument would throw a NullPointerException. Fixes 10528. |
Type | Changes | By |
---|---|---|
Calling an AsyncAppender close method also closes the embedded appender instances. Fixes 10185. |
Type | Changes | By |
---|---|---|
The JDBCAppender is marked as slated for replacement. Do not build critical software using it. | ||
Add LF5 documentation and examples. Further tests are required for full integration. | ||
XMLLayout can now output messages which contain embedded CDATA sections.Many thanks to Michael A. McAngus for supplying the relevant patch. | ||
The dispatcher thread associated with AsyncAppender is now marked as a deamon thread. Fixes 9750. | ||
Add missing NTEventLogAppender.dll Fixes 9606. | ||
log4j.dtd was changed so that <log4j:event> is now made of logger and level attributes instead of category and priority. Changed XMLLayout to conform to the DTD. Chainsaw was changed to adapt to the XMLLayout. Fixes 9435. | ||
Add missing LevelRangeFilter file. |
Type | Changes | By |
---|---|---|
SyslogAppender would incorrectly compute the length of the datagram to send to the remote syslogd host. Reported by Mamoru Kadota. Fixes 9285. | ||
The stack trace of exception would not be properly printed on the Compaq tru64 Unix platform. Initially reported by Fabrice Claes and later by Espen H. Kolstad who also provided the fix. Fixes 8505. |
Type | Changes | By |
---|---|---|
Log4j configurators take the "NULL" string value as a synonym for "INHERITED". Both of these two strings are legal level values for setting the level of a logger. Both values are case insensitive. | ||
When loading component classes, log4j will now first attempt to use the Thread Context Loader and if that fails, it will use Class.forName. In log4j 1.2 and 1.2.1, only Class.forName was used and the TCL was ignored. This change is a response to bug #9305 opened by Scott M. Stark. Fixes 9305. |
Type | Changes | By |
---|---|---|
LoggingEvent.getMDCCopy() method now sets mdcCopyLookupRequired instead of ndcLookupRequired. This bug would cause the wrong MDC information to appear on a log server. It could only occur if the client wrapped an AsyncAppender around a SocketAppender or if the server used an AsyncAppender for its logging. Fixes 9155. |
Type | Changes | By |
---|---|---|
A closed TelnetAppender would continue waiting for connections even if its ServerSocket was closed. This caused the TelnetSocket to sit in a loop and complain about the closed socket. Fixes 8527. | ||
AsyncAppender throws NullPointerException problem. The bug was actually in AppenderSkeleton. Fixes 5444. | ||
Add support for recursive variable substiuton as requested by Eric Chastan. | ||
SocketNode now used a BufferedInputStream as suggested by Kok Chong Fixes 3933. | ||
Fixed a problem with DailiyRollingAppender which would not correctly compute the rollover period in certain timezones. Fixes 7550. | ||
Fixed documentation bug #2726 in FAQ.html. Fixes 2726. | ||
Added a flush statement in the WriterAppender.writeFooter method. Fixes 2383. | ||
In XMLLayout, escaped the method attribute. The XMLLayout also outputs each item of a stack trace in a separate line. | ||
The LoggingEvent.getMDCCopy method now clones the MDC instead of just referencing it. Fixes 5932. | ||
The ANT build script was modified to use jar files specified in the build.properties file instead of the CLASSPATH environment variable. The build.properties file depends on local paths and is supplied by the user. The build.properties.sample file is included in the distribution. The build.sh and build.bat scripts have been removed. This is the way many other jakarta projects build their projects. The jar files in the dist/lib directory were also removed since they are no longer used. | ||
The DOMConfigurator now interprets the string after the '#' character in the value attribute within the <level> element as the fully qualified class name of a custom Level. This is consistent with the way log4j handles "level" values in other places. The class attribute is still honored. | ||
Add Oliver Burn's chainsaw tool to the core log4j distribution. Visualisation and dynamic filtering of log events is bound to be a very important area of activity in the future. | ||
Add the org.apache.log4j.jdbc.JDBCAppender which as the name indicates sends events to a database using the JDBC API. Thanks to Kevin Steppe for supplying the code. | ||
Add SocketHubAppender class as contributed by Mark Womack. This appender sends LoggingEvent objects to a set of remote a log servers. | ||
In the Category class, the getChainedPriority method has been replaced with getEffectiveLevel method. | ||
Replaced the custom class loading based on the thread context class loader with a simple Class.forName() call. This solves two allied but distinct problems encountered when using Ant with JUnit although the bug is more general. In one instance of the problem, log4j would throw java.lang.NoClassDefFoundError for org/apache/log4j/AppenderSkeleton where log4j.jar and related classes were clearly available to the Ant classloader. In another incarnation, log4j would reject a custom appender claiming that it is not assignable to a org.apache.log4j.Appender variable. This would occur when log4j.jar was available to both the Ant classloader and the system classloader. Thanks to Dave Herman for providing detailed scenarios exposing the issues involved. See http://forum.java.sun.com/thread.jsp?forum=38&thread=70946 http://forum.java.sun.com/thread.jsp?forum=38&thread=70946#479697 http://marc.theaimsgroup.com/?l=ant-user&m=101139178705895&w=2 for more details. | ||
Fixed the complaints the compiler issued when using the Logger.setLevel() method. | ||
Incorporated the performance enhancements to ISO8601DateFormat and AbsoluteTimeDateFormat classes submitted by Andrew Vajoczki. | ||
Source code written for log4j 1.1.3.jar will compile fine with log4j 1.2X. However, code compiled for log4j 1.1.3 would previously systematically throw "java.lang.NoSuchMethodError" runtime exceptions when run with log4j 1.2 - prior to beta2. This problem has been corrected in beta2. Pheew, that was a close one. | ||
Log4j 1.2 is now backward compatible in serialization of LoggingEvents. For example, a 1.1.3 SocketAppedner can write to 1.2 SocketServer. Similarly a 1.2 JMSAppender will work with 1.1.3 JMSSink. This should ease the move to log4j 1.2, especially in large deployments. | ||
The src/java/org/apache/log4j/examples/ directory moved under the top-level directory as examples/. | ||
Fixed the ArrayIndexOutOfBoundsException that was thrown by AsyncAppender if multiple threads were trying to log an event containing an exception near simultaneously. Thanks to Thomas Tuft Muller for reporting this bug. | ||
Improved error reporting in DOMConfigurator. Thanks to Thomas Tuft Muller for contributing the enhancement. | ||
Log4j is now configurable using JMX. JMX support is not of production quality. | ||
Add support for different encodings in WriterAppender. Thanks to Ben Sandee for submitting the relevant patch. | ||
Modified SMTPAppender to allow multiple email sessions. Thanks to Jon Skeet for supplying the relevant patch. | ||
The CategoryFactory class has been replaced by the LoggerFactory class. The makeNewCategoryInstance method has been renamed as makeNewLoggerInstance. This change requires subclasses of Category classes to be modified and recompiled. | ||
The Level class replaced the Priority class. Priority class now extends Level to preserve backward compatibility. | ||
The Logger class replaced the Category class. Logger class extends Category to preserve backward compatibility. We proudly mark this change with a single star for 100% compatibility. | ||
The Category.assert method has been replaced by Category.assertLog. This change was necessary because assert is a language reserved word in JDK 1.4. | ||
Removed deprecated methods setOptions and getOptionStrings defined in the org.apache.log4j.spi.OptionHandler interface. This interface is implemented by most log4j appenders and layouts. In particular, all appenders and layouts shipped with log4j contain these deprecated methods. They have become totally redundant after we moved to JavaBeans style configuration in log4j 1.1. | ||
The disable(Level) methods in Hierarchy have been removed and been replaced by threshold methods. | ||
Add buffered IO capability to FileAppender and subclasses. | ||
The location information (or stack information) was not correctly transmitted by JMSAppender. | ||
Add event reporting capability to the Hierarchy class. | ||
Add new system property "log4j.configuratorClass". This property allows the user to specify the custom configurator at the default initialization phase. This property replaces the previous interpretation of the reference part of "log4j.configuration" as the custom configurator class. This interpretation was sometimes erroneous and caused headaches. | ||
Introduced the Mapped Diagnostic Context or MDC class. This class is similar to the NDC except that the diagnostic context is based on a map instead of a stack. Moreover the MDC is automatically inherited by child threads under JDK 1.2 and above. | ||
Corrected a performance bug in the NDC class as observed by Dan Milstein and independently by Ray Millard. | ||
Removed deprecated methods disable(Priority), disableAll, disableDebug, disableInfo and enableAll in BasicConfigurator. | ||
Add supports java.io.Reader objects in the method doConfigure(), instead of only InputStream. Thanks to Mark Womack for submitting the relevant patch. | ||
Corrected the restart bug in DailyRollingFileAppender. Thanks to Jim Moore for supplying the relevant patch. |
Type | Changes | By |
---|---|---|
Add missing custom priority support in PropertyConfigurator. | ||
Made a number of fields protected instead of default access in SMTPAppender. |
Type | Changes | By |
---|---|---|
This release has the same code as 1.1b7. It differs only in a few minor documentation changes. |
Type | Changes | By |
---|---|---|
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. Fixes 1505. | ||
The configureAndWatch methods in Configurators did not close the configuration file, preventing its editing. Fixes 1686. | ||
In DOMConfigurator.setParameter special character conversion now precedes 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. |
Type | Changes | By |
---|---|---|
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 exemplary bug reports. They are worth the detour. Fixes 1505. | ||
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. | ||
Add PriorityRangeFilter by Simon Kitching. See the Threshold option in AppenderSkeleton for a more convenient alternative. |
Type | Changes | By |
---|---|---|
Add the missing build.inc file to the distribution. No code changed. |
Type | Changes | By |
---|---|---|
This version corrects some documentation and build script bugs; code has not changed. |
Type | Changes | By |
---|---|---|
Corrected multiple bugs in default initialization code of Category class. Thanks to Jeff Turner for identifying and supplying corrective patches. |
Type | Changes | By |
---|---|---|
The value of the additivity option would not be parsed properly by the ProperytConfigurator if the line containing the option contained trailing spaces. |
Type | Changes | By |
---|---|---|
The localized logging methods (l7dlog) omitted priority based evaluation and erroneously logged all requests. |
Type | Changes | By |
---|---|---|
Corrected a bug in Category.removeAppender(String) which would never remove the desired appender. Thanks to Moses Hohman for reporting this bug. |
Type | Changes | By |
---|---|---|
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. |