blob: 576049398c093200c6eb227afb020432aa16af19 [file] [log] [blame]
Apache Log4j 2.1 RELEASE NOTES
The Apache Log4j 2 team is pleased to announce the Log4j 2.1 release!
Apache log4j is a well known framework for logging application behavior. Log4j 2 is an upgrade to
Log4j that provides significant improvements over its predecessor, Log4j 1.x, and provides
many of the improvements available in Logback while fixing some inherent problems in Logback's
architecture.
This is the fourth GA release which contains several bugfixes and new features. There are two
new Maven artifacts in this release: log4j-jul and log4j-iostreams. Both components are API-based
with optional Core features.
GA Release 2.1
Changes in this version include:
New features:
o LOG4J2-589: Supported filtering on custom log levels in configuration.
o LOG4J2-856: Documentation: add sections on the JUL Adapter, IO Streams and NoSQL Appenders to the Maven and Ivy page.
o LOG4J2-848: Add a Java lookup to provide nicely formatted runtime version information.
o LOG4J2-809: Move reflection utility class to API's private utility classes.
o LOG4J2-833: Documentation: added Runtime Dependencies link to left nav-bar on site.
o LOG4J2-816: Documentation: added section on XInclude to user manual Configuration page.
o LOG4J2-547: Add the Log4j IOStreams component.
o LOG4J2-431: Added Memory-Mapped File Appender. Thanks to Claude Mamo.
o LOG4J2-827: Support use of TypeConverter classes through the standard Plugin system.
o LOG4J2-825: Add simple validation constraint annotations for the Plugin system.
o LOG4J2-428: Implement a GELF layout. Thanks to Mark Paluch.
o LOG4J2-608: Add java.util.logging implementation based on log4j-api. See log4j-jul documentation for more details.
o LOG4J2-793: Add support for custom SLF4J Markers in log4j-slf4j-impl module.
o LOG4J2-771: Add lookup for application main arguments.
o LOG4J2-787: Add lookup for JVM arguments.
Fixed Bugs:
o LOG4J2-866: Documentation: fixed missing closing parenthesis in code example. Thanks to Gerard Weatherby.
o LOG4J2-862: Fixed classloader issue that prevented Log4j from finding the implementation when used in a custom Ant task. Thanks to Michael Sutherland.
o LOG4J2-861: Documentation: fix broken links on left navigation Extending Log4j Configuration sub-menu.
o LOG4J2-797: Documentation: clarified why log4j-core is a compile time dependency in Maven and Ivy page. Thanks to Andreas Rytina.
o LOG4J2-855: Documentation: fix broken links on Appenders manual page.
o LOG4J2-807: Prevent NPE when configuration with AsyncLogger/AsyncRoot is reloaded.
o LOG4J2-678: Documentation: fixed minor issues with Log4j2 web site/documentation. Thanks to Matt Sicker.
o LOG4J2-843: Migrate JpaHyperSqlAppenderTest JUnit performance test to log4j-perf.
o LOG4J2-842: Migrate JpaH2AppenderTest JUnit performance test to log4j-perf.
o LOG4J2-841: Migrate JdbcHyperSqlAppenderTest JUnit performance test to log4j-perf.
o LOG4J2-840: Migrate JdbcH2AppenderTest JUnit performance test to log4j-perf.
o LOG4J2-830: Respect external interrupt signal to allow application shutdown after joining AsyncAppender thread.
o LOG4J2-813: MarkerManager Log4jMarker.hasParents() returns opposite of correct result. Thanks to David Erichsen, Brandon Barry.
o LOG4J2-785: Documentation: fixed capitalization inconsistency in user manual example config.
o LOG4J2-829: Fixed issue in RollingFile filePattern: backslashes are path separators, not escape characters.
o LOG4J2-832: ThrowableProxy fails if a class in logged stack trace throws java.lang.Error from initializer Thanks to Seth Leger.
o LOG4J2-745: Avoid ConverterKey plugin clashes by using a more predictable plugin loading infrastructure.
Plugins have been segmented into three parts: class path, user-specified packages, and OSGi bundles. Thanks to Scott Harrington.
o LOG4J2-798: Fixed plugin scanning redundancy causing massive slowdowns in certain environments. Thanks to Scott Harrington.
o LOG4J2-753: Reduced CachedClock thread contention.
o LOG4J2-819: Fixed memory leak in Tomcat 6 caused by clock background threads unintentionally
started by Tomcat after web application stop. Thanks to Gary Gregory.
o LOG4J2-391: FlumePersistentManager now handles LockConflictExceptions in Berkeley Db when sending a batch. Thanks to Kamal Bahadur.
o LOG4J2-782: Remove invalid Oracle Maven repository.
o LOG4J2-796: Fixed issue where log4j-to-slf4j did not work correctly with SLF4J Simple Logger.
o LOG4J2-811: SimpleLogger throws ArrayIndexOutOfBoundsException for an empty array. Thanks to Yogesh Rao.
o LOG4J2-663: Fix OSGi Import-Package problem with the JMS API. Thanks to Florian Brunner.
o LOG4J2-783: PatternLayout should use platform character encoding by default, not UTF-8. Thanks to Minglei Lee.
Changes:
o LOG4J2-845: Add 2.1.0 to compatible versions in Log4j API ProviderUtil and update Log4jAPIVersion to 2.1.0 in
core META-INF/log4j-provider.properties.
o LOG4J2-844: Update JMH to 1.1 from 0.7.2.
o LOG4J2-831: Documentation: updated FAQ "which jars" diagrams for JUL bridge and 2.1 version.
o LOG4J2-780: Update Spring Framework to 3.2.11.RELEASE from 3.2.8.RELEASE.
o LOG4J2-815: Unify the two JMS appenders into a single appender. Configurations written for 2.0 will still work in 2.1+.
o LOG4J2-790: Update Jackson to 2.4.2 from 2.4.1 (for XML and JSON processing).
o LOG4J2-766: Incomplete documentation for JSONLayout. Thanks to Bruno P. Kinoshita.
o LOG4J2-800: All life cycle implementations should be serializable.
This is still work in progress.
o LOG4J2-801: org.apache.logging.log4j.core.Logger should be serializable.
This is still work in progress.
o LOG4J2-810: Update javax.mail to 1.5.2 from 1.5.0.
o LOG4J2-822: Update org.eclipse.persistence.jpa to 2.5.2 from 2.5.1.
o LOG4J2-867: FlumeAppender: maxDelay not in seconds, but milliseconds.
Add time scale to some settings, for example maxDelayMillis instead of maxDelay.
The old names are aliased for compatibility.
Apache Log4j 2.1 requires a minimum of Java 6 to build and run. Basic compatibility with
Log4j 1.x is provided through the log4j-1.2-api component, however it does not implement some of the
very implementation specific classes and methods. The package names and Maven groupId have been changed to
org.apache.logging.log4j to avoid any conflicts with log4j 1.x.
For complete information on Apache Log4j 2, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Apache Log4j 2 website:
http://logging.apache.org/log4j/2.x/
-------------------------------------------------------------------------------
Apache Log4j 2.0.2 RELEASE NOTES
The Apache Log4j 2 team is pleased to announce the Log4j 2.0.2 release!
Apache log4j is a well known framework for logging application behavior. Log4j 2 is an upgrade to
Log4j that provides significant improvements over its predecessor, Log4j 1.x, and provides
many of the improvements available in Logback while fixing some inherent problems in Logback's
architecture.
This is the third GA release which contains several bugfixes from the previous release.
Bug fixes and enhancements
Changes in this version include:
Fixed Bugs:
o LOG4J2-773: Site: log4j-core component pages were still using the old logo.
o LOG4J2-760: Documentation improvement: link to dependency tree from log4j-core component page,
link to log4j-core component page from FAQ page.
o LOG4J2-679: Resolved race condition that caused log file rotation to fail with error: "Unable to create directory ..."
o LOG4J2-726: Prevent application from hanging when PatternLayout configuration has opening '{' but no closing '}'.
o LOG4J2-769: Startup takes a long time if you have empty packages attribute. Thanks to Scott Harrington.
o LOG4J2-763: Improved asynchronous loggers and appenders to ensure the formatted message does not change even if
parameters are modified by the application. (ParameterizedMessage was already safe.)
Improved documentation. Thanks to Stephen Connolly.
o LOG4J2-729: Emit warning message to console if no configuration file found.
o LOG4J2-765: Improve warning message when missing log4j-core in the classpath.
o LOG4J2-722: Clarified in documentation that Commons Logging jar is required when using log4j-jcl.
o LOG4J2-723: Clarified in documentation that SLF4J API jar is required when using log4j-slf4j-impl.
o LOG4J2-759: Fixed various minor site/documentation issues, mostly versioning related.
o LOG4J2-756: Prevent JUnit test from creating unnecessary Log4j2Plugins.dat during build. Thanks to Scott Harrington.
Changes:
o LOG4J2-775: Update Apache Flume to 1.5.0.1 from 1.5.0.
o LOG4J2-730: Allow Log4jContextFactory subclasses to specify a custom ContextSelector.
Apache Log4j 2.0.2 requires a minimum of Java 6 to build and run. Basic compatibility with
Log4j 1.x is provided through the log4j-1.2-api component, however it does not implement some of the
very implementation specific classes and methods. The package names and Maven groupId have been changed to
org.apache.logging.log4j to avoid any conflicts with log4j 1.x.
For complete information on Apache Log4j 2, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Apache Log4j 2 website:
http://logging.apache.org/log4j/2.x/
-------------------------------------------------------------------------------
Apache Log4j 2.0.1 RELEASE NOTES
The Apache Log4j 2 team is pleased to announce the Log4j 2.0.1 release!
Apache log4j is a well known framework for logging application behavior. Log4j 2 is an upgrade to
Log4j that provides significant improvements over its predecessor, Log4j 1.x, and provides
many of the improvements available in Logback while fixing some inherent problems in Logback's
architecture.
This is the first GA release, after thirteen prior releases over the last 4 years.
?
Changes in this version include:
New features:
o LOG4J2-725: Added WebLoggerContextUtils class to log4j-web for helper methods useful for asynchronous servlets.
o LOG4J2-710: Added documentation for Custom Levels and Custom Loggers.
Fixed Bugs:
o LOG4J2-744: Avoid unnecessary Clock calls when TimestampMessage is logged. Thanks to Scott Harrington.
o LOG4J2-704: Improved error message if configuration file not found.
o LOG4J2-750: Webapp configuration page has incorrect class name. Thanks to Mike Calmus.
o LOG4J2-749: Retain the default date pattern after fixing the ISO8601 pattern. Thanks to Scott Harrington.
o LOG4J2-670: DatePatternConverter ISO8601_PATTERN now conforms to ISO8601.
o LOG4J2-741: Reinstate the package configuration attribute for discovering custom plugins.
o LOG4J2-742: XInclude not working with relative path. Thanks to Pascal Chollet.
o LOG4J2-740: Fixed typo in webapp manual regarding sample web.xml file. Thanks to Kosta Krauth.
o LOG4J2-738: RollingFileManager deadlock if async action thread fails to start. Thanks to Timothy Stack.
o LOG4J2-736: Fixed log4j-bom so that it won't specify a default scope on any third party dependencies.
o LOG4J2-735: Fixed log4j-bom so that it won't interfere with spring-bom and others.
o LOG4J2-731: Updated documentation regarding extensions to LoggerContextFactory and Log4j 2 providers.
o LOG4J2-373: Fixed ClassLoader issues in loading Log4j providers in an OSGi environment.
o LOG4J2-719: Correctly handle NetworkOnMainThreadException thrown on Android during Log4j2 initialization.
o LOG4J2-716: Automatically disable log4j JMX when detecting we are running on Android.
o LOG4J2-657: Fixed AbstractDatabaseManager to close connection on writeInternal error. Thanks to Stefan Wehner.
o LOG4J2-713: Android: java.lang.VerifyError: org/apache/logging/log4j/core/util/Closer Thanks to Nelson Melina.
o LOG4J2-703: Android: Could not find class 'javax.naming.InitialContext', referenced from method org.apache.logging.log4j.core.lookup.JndiLookup.lookup. Thanks to Nelson Melina.
Apache Log4j 2.0.1 requires a minimum of Java 6 to build and run. Basic compatibility with
Log4j 1.x is provided through the log4j-1.2-api component, however it does not implement some of the
very implementation specific classes and methods. The package names and Maven groupId have been changed to
org.apache.logging.log4j to avoid any conflicts with log4j 1.x.
For complete information on Apache Log4j 2, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Apache Log4j 2 website:
http://logging.apache.org/log4j/2.x/
-------------------------------------------------------------------------------
Apache Log4j 2.0 RELEASE NOTES
The Apache Log4j 2 team is pleased to announce the Log4j 2.0 release!
Apache log4j is a well known framework for logging application behavior. Log4j 2 is an upgrade to
Log4j that provides significant improvements over its predecessor, Log4j 1.x, and provides
many of the improvements available in Logback while fixing some inherent problems in Logback's
architecture.
This is the first GA release, after thirteen prior releases over the last 4 years.
GA Release
Changes in this version include:
New features:
o LOG4J2-519: Added support for generating custom logger wrappers that replace the existing log levels
and extended logger wrappers that add custom log levels to the existing ones.
o LOG4J2-696: RegexFilter does not match multiline log messages.
Fixed Bugs:
o LOG4J2-705: Fixed issue where Async Logger does not log thread context stack data.
API change: added method getImmutableStackOrNull() to ThreadContext.ContextStack interface.
o LOG4J2-631: Update docs to clarify how to use formatter logger and standard logger together.
o LOG4J2-441: LoggerConfigs with no Level now inherit the Level from their parent.
o LOG4J2-703: Android: Could not find class 'javax.naming.InitialContext', referenced from method org.apache.logging.log4j.core.lookup.JndiLookup.lookup. Thanks to Nelson Melina.
o LOG4J2-699: PatternLayout manual page missing documentation on header/footer.
o LOG4J2-625: Fixed Serialization error with SocketAppender and Async Loggers.
(Fixed in RC2, but wasn't included in release notes.)
o LOG4J2-538: JMX GUI: fixed occasional ArrayIndexOutOfBoundsException after pressing "reconfigure with XML below".
(Fixed in RC2, but wasn't included in release notes.)
o LOG4J2-666: AsyncLoggerContextSelector should ensure that different AsyncLoggerContext objects created by web app classloaders have unique names.
o LOG4J2-683: Fix annotation processor warnings on JDK 1.7+. Thanks to Jurriaan Mous.
o LOG4J2-694: Fix strange compilation error that popped up in a test class.
o LOG4J2-692: Update documentation to specify only Maven 3 is supported.
o LOG4J2-690: Log4j Web test dependencies should be in scope "test" in the pom. Thanks to Philip Helger.
o LOG4J2-682: Special characters (tab and so on) in PatternLayout do not work. Thanks to Scott Harrington.
o LOG4J2-686: Core's OptionConverter support for \b is broken (affects PatternLayout).
o LOG4J2-687: Rename org.apache.logging.log4j.core.util.Closer.closeSilent() to closeSilently().
o LOG4J2-688: Make org.apache.logging.log4j.core.layout.PatternLayout immutable.
o LOG4J2-707: Some exceptions are not logged when configuration problems are detected.
Changes:
o LOG4J2-685: Make org.apache.logging.log4j.core.layout.AbstractLayout immutable.
o LOG4J2-689: Update Jackson to 2.4.1.
o LOG4J2-709: Update Apache Commons Logging to 1.2 from 1.1.3.
Apache Log4j 2.0 requires a minimum of Java 6 to build and run. Basic compatibility with
Log4j 1.x is provided through the log4j-1.2-api component, however it does not implement some of the
very implementation specific classes and methods. The package names and Maven groupId have been changed to
org.apache.logging.log4j to avoid any conflicts with log4j 1.x.
For complete information on Apache Log4j 2, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Apache Log4j 2 website:
http://logging.apache.org/log4j/2.x/