You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rg...@apache.org on 2016/05/25 05:45:58 UTC

logging-log4j2 git commit: Prepare for release

Repository: logging-log4j2
Updated Branches:
  refs/heads/master 11d8148a2 -> 27c86df7b


Prepare for release


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/27c86df7
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/27c86df7
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/27c86df7

Branch: refs/heads/master
Commit: 27c86df7b9f34413ce4e5f2663e8c91127d7e40e
Parents: 11d8148
Author: Ralph Goers <ra...@dslextreme.com>
Authored: Tue May 24 22:22:46 2016 -0700
Committer: Ralph Goers <ra...@dslextreme.com>
Committed: Tue May 24 22:22:46 2016 -0700

----------------------------------------------------------------------
 RELEASE-NOTES.txt           | 174 +++++++++++++++++++++++++++------------
 pom.xml                     |   4 +-
 src/changes/announcement.vm |   8 +-
 src/changes/changes.xml     |   2 +-
 4 files changed, 127 insertions(+), 61 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/27c86df7/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index eda5b2f..f966265 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -1,75 +1,143 @@
 
-              Apache Log4j 2.5 RELEASE NOTES
+              Apache Log4j 2.6 RELEASE NOTES
 
-The Apache Log4j 2 team is pleased to announce the Log4j 2.5 release!
+The Apache Log4j 2 team is pleased to announce the Log4j 2.6 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 other modern features such as support for Markers, property substitution using Lookups, multiple patterns on
 a PatternLayout and asynchronous Loggers. In addition, Log4j 2 will not lose events while reconfiguring.
 
-This is the ninth GA release. It contains several bugfixes and new features. The new features include
-the ability to specify delete actions during file rollover, a CRON-based triggering policy for file rollover,
-Support for JSR 223 scripts in filters, pattern selectors and delete actions, and a policy for removing
-idle appenders from the RoutingAppender. More details on the features and bugfixes are itemized below.
+This is the tenth GA release. It contains several bugfixes and new features. The new features include
+the ability to not generate any objects while logging if certain conditions are met, a new YAML Layout,
+the ability to merge configuration files, and documenting Log4j's performance against other logging
+frameworks and in various logging configurations. More details on the features and bugfixes are itemized below.
 
-Log4j 2 requires a minimum of Java 7.
-
-GA Release 2.5
+GA Release 2.6
 
 Changes in this version include:
 
 New features:
-o LOG4J2-435:  Added support for custom delete actions triggered by a rollover. Thanks to Robert Schaft. 
-o LOG4J2-89:  Allow rollover to occur at any time. Add CronTriggeringPolicy. 
-o LOG4J2-1136:  Add support for JSR 223 scripts in filters and the PatternSelector. 
-o LOG4J2-1168:  Add getters for source and destination file in file rename action. Thanks to Steven Swor. 
-o LOG4J2-1175:  Add getters for classes in org.apache.logging.log4j.core.appender.rolling.action. 
-o LOG4J2-898:  Added system property to allow users to control whether messages should be formatted in the background. 
-o LOG4J2-1178:  Support use-case for JDBC's CommonDataSource.setLogWriter(PrintWriter) and java.sql.DriverManager.setLogWriter(PrintWriter). 
-o LOG4J2-1187:  Support use case for java.sql.DriverManager.setLogStream(PrintStream). 
+o LOG4J2-1270:  (GC) Added support for garbage-free logging in steady state.
+        This includes Async Loggers and logging synchronously to the console and to a file,
+        but does not include the AsyncAppender. This release makes the GelfLayout and
+        the main patterns in the PatternLayout garbage-free. 
+o LOG4J2-1297:  (GC) Added manual page on garbage-free logging. 
+o LOG4J2-1373:  (GC) Update Logger wrapper Generator tool to generate methods for the new Logger methods. 
+o LOG4J2-1326:  (GC) Added methods to the Logger interface for logging CharSequence messages. 
+o LOG4J2-1344:  (GC) FileAppender, RollingFileAppender and MemoryMappedFileAppender are now also garbage-free by default. 
+o LOG4J2-1278:  (GC) Added unrolled varargs methods to Logger API, added Unbox utility to avoid auto-boxing when logging primitive values. 
+o LOG4J2-1271:  (GC) Add MessageFactory that avoid allocation by reusing a cached ParameterizedMessage instance. 
+o LOG4J2-1293:  (GC) Add interface StringBuilderFormattable to enable converting Messages and parameters to text without allocating temporary objects.
+        ParameterizedMessage, ObjectMessage, SimpleMessage and ThreadDumpMessage now implement StringBuilderFormattable. 
+o LOG4J2-1274:  (GC) Add encode(LogEvent, ByteBufferDestination) method to Layout API to enable converting LogEvents to bytes without creating temporary objects. 
+o LOG4J2-1362:  Added a YAML layout. Thanks to Gary Gregory. 
+o LOG4J2-1179:  Documented benchmark results comparing Log4j 2 performance to other logging libraries. 
+o LOG4J2-1011:  Document dependencies for layouts. 
+o LOG4J2-621:  Pattern to drop first N package parts. Thanks to Lee Theobald, Kamal Mettananda, Gary Gregory. 
+o LOG4J2-494:  Support merging configurations to for a composite configuration. Thanks to Philipp Knobel. 
+o LOG4J2-1357:  Option to not log stack traces for logged Throwables in GelfLayout. 
+o LOG4J2-1348:  Add an AutoCloseable ThreadContext class: CloseableThreadContext. Thanks to Greg Thomas, Gary Gregory. 
+o LOG4J2-1299:  Add pattern converter for thread id and priority in PatternLayout. 
+o LOG4J2-124:  Add shutdown methods to LogManager. 
+o LOG4J2-1221:  Added async logger Timeout wait strategy and made this the default wait strategy for async loggers.
+        This prevents a rare deadlock that may occur on Solaris. Thanks to Michael Barker. 
+o LOG4J2-1080:  Added option to discard events below a certain log level if the async logger ring buffer
+        or async appender queue is full. 
+o LOG4J2-1237:  Make PatternLayout header and footer accept a pattern. Thanks to Mike Calmus, Gary Gregory. 
+o LOG4J2-1244:  Make header and footer values customizable in JSONLayout. Thanks to Anshu Garg, Remko Popma, Gary Gregory. 
+o LOG4J2-1245:  Make CSV Layout header and footers accept patterns. 
+o LOG4J2-1192:  Dynamic Subject for SMTP Appender. Thanks to J�rg Bretschneider, Gary Gregory. 
+o LOG4J2-1277:  FormattedMessage, MessageFormatMessage and StringFormattedMessage should support passing in a Locale to ensure appropriate formatting. Thanks to Gary Gregory, Ludovic Hochet. 
+o LOG4J2-1303:  Add documentation links to runtime dependencies in each component intro page. 
+o LOG4J2-1252:  JeroMqAppender should support layouts. 
+o LOG4J2-1217:  PatternLayout option to limit length of text. Thanks to Thies Wellpott. 
+o LOG4J2-1133:  Add JNDI lookup documentation. 
+o LOG4J2-1169:  PatternLayout: Possible variable substitution in equals substitution parameter. Thanks to Gerald Kritzinger. 
 
 Fixed Bugs:
-o LOG4J2-324:  Reduced memory usage of status messages in bounded queue; support zero-length queue that stores no messages. 
-o LOG4J2-1173:  Fixed rollover error when copying to a directory mapped to a remote Linux host. 
-o LOG4J2-1195:  Make KafkaAppender support SerializedLayout. Thanks to Melvin Du. 
-o LOG4J2-381:  Allow triggering policy and rollover strategy to be modified during reconfiguration. Thanks to Anthony Baldocchi. 
-o LOG4J2-1029:  Performance improvement when gathering location information. Thanks to Stefan Leonhartsberger. 
-o LOG4J2-1172:  Fixed ThreadLocal leak [AsyncLogger$Info] on Tomcat when using AsyncLoggerContextSelector. 
-o LOG4J2-1176:  Fixed memory leak when log4j jars are in Tomcat's lib folder. 
-o LOG4J2-1180:  Logger cache does not account for message factory. Thanks to Mikael St�ldal. 
-o LOG4J2-879:  Documentation: fixed minor issues with the site and manual pages. 
-o LOG4J2-999:  RollingFileAppender should also roll over when log event time is equal to rollover time, not only when later. Thanks to Joan Balaguer�. 
-o LOG4J2-873:  Fixed bug where omitting the <display-name> element in web.xml caused incorrect log4j initialization,
-        resulting in memory leaks when the web application was stopped or reloaded. Thanks to Martin Dickins, LC, Luke Woodward. 
-o LOG4J2-323:  Better web app support for async loggers: Fixed a memory leak that occurred when the logging jars are placed
-        in the container's classpath and the configuration file uses AsyncRoot/AsyncLogger.
-        The problem was that the first web application started the Disruptor background thread [AsyncLoggerConfig-1] but did not stop it until all web apps are stopped.
-        Each web application now has its own Disruptor which is stopped/started together with the web app. 
-o LOG4J2-493:  Better web app support for async loggers: it is now possible to place the logging jars in the container's
-        classpath when making all loggers asynchronous by using AsyncLoggerContextSelector. This fixes a problem where
-        logging would stop working after stopping and restarting a web application. 
-o LOG4J2-1171:  Use servlet context name for logger context name when available. 
-o LOG4J2-1159:  Fixed a ThreadLocal memory leak in Tomcat8 that mentions AsyncLoggers when Async Loggers are not used. 
-o LOG4J2-1166:  AbstractConfiguration executor should use a DaemonThreadFactory. 
-o LOG4J2-1165:  Improve Log4j initialization status messages. 
-o LOG4J2-1156:  Web site corrections and updates. 
-o LOG4J2-1158:  Log4J JUL adapter is using MessageFormat on String passed by java.util.function.Supplier<String>. Thanks to Michael Fortin, Gary Gregory. 
-o LOG4J2-801:  org.apache.logging.log4j.core.Logger should be serializable. 
-o LOG4J2-1157:  Fix compilation error for classes annotated with @Plugin. Thanks to Norbert Bartels. 
-o LOG4J2-948:  Fix plugin documentation error about Converters. Thanks to Andrew Flower. 
-o LOG4J2-1193:  Prefix all thread names Log4j creates with "Log4j2-". 
-o LOG4J2-1194:  Documentation does not match parameters for LoggerNameLevelRewritePolicy. Thanks to Adam Brin. 
-o LOG4J2-1196:  MongoDbConnection does not close MongoClient. Thanks to Ren� Zanner. 
+o LOG4J2-1281:  (GC) LoggerConfig.getProperties() should not allocate on each call. 
+o LOG4J2-1269:  (GC) AsyncLogger should use thread-local translator by default. 
+o LOG4J2-623:  Generate MDC properties as a JSON map in JSONLayout, with option to output as list of map entries. 
+o LOG4J2-1387:  Fixed memory leak related to shutdown hook. 
+o LOG4J2-1382:  Copying a MutableLogEvent using Log4jLogEvent.Builder should not unnecessarily obtain caller location information. 
+o LOG4J2-1372:  XMLLayout indents, but not the first child tag (Event). Thanks to Kamal Mettananda, Gary Gregory. 
+o LOG4J2-1363:  Properties Configuration did not support includeLocation attribute on Loggers. 
+o LOG4J2-1263:  The ConfigurationSource was not saved for BuiltConfigurations so monitor interval had no effect. 
+o LOG4J2-1369:  "xz" compression results in plaintext, uncompressed files. Thanks to Alex Birch, Gary Gregory. 
+o LOG4J2-1368:  (Log4j-internal) StatusLogger dropped exceptions when logging parameterized messages. 
+o LOG4J2-1336:  LoggerFactory in 1.2 API module is not compatible with 1.2. Thanks to Zbynek Vyskovsky. 
+o LOG4J2-1354:  No configuration reload is triggered under Windows when replacing the configuration file with one that has older last modified date. Thanks to Arkadiusz Adolph. 
+o LOG4J2-1346:  Exception from Log4jServletContextListener prevents jetty-maven-plugin run-forked. 
+o LOG4J2-1339:  (Perf) AsyncLogger performance optimization: avoid calling instanceof TimestampMessage in hot path. 
+o LOG4J2-1324:  Improve error handling in the Async Logger background thread: the new default exception handler no longer rethrows the error. 
+o LOG4J2-1309:  Configuration file error does not show cause exception. 
+o LOG4J2-1289:  Change flow logging text from "entry' to "Enter" and "exit" to "Exit". 
+o LOG4J2-1284:  Made default MessageFactory configurable. 
+o LOG4J2-1280:  Deprecate org.apache.logging.log4j.util.MessageSupplier. 
+o LOG4J2-1280:  Logger methods taking Supplier parameters now correctly handle cases where the supplied value is a Message. 
+o LOG4J2-1268:  FixedDateFormat was incorrect for formats having MMM with the French locale. 
+o LOG4J2-1222:  Creation of a LoggerContext will fail if shutdown is in progress. LogManager will default to SimpleLogger instead. 
+o LOG4J2-1260:  TlsSyslogFrame calculates message length incorrectly. Thanks to Blake Day, Gary Gregory. 
+o LOG4J2-1258:  Async DynamicThresholdFilter does not use the log event's context map. Thanks to Francis Lalonde. 
+o LOG4J2-1232:  Incorrect log rotation in last week of year. Thanks to Nikolai. 
+o LOG4J2-1248:  Fixed broken nanotime in pattern layout. 
+o LOG4J2-908:  JSONLayout doesn't add a comma between log events. Thanks to Konstantinos Liakos, Patrick Flaherty, Robin Coe, Gary Gregory. 
+o LOG4J2-1230:  Don't concatenate SYSLOG Messages. Thanks to Vladimir Hudec, Ralph Goers, Gary Gregory. 
+o LOG4J2-1238:  org.apache.logging.log4j.core.net.TcpSocketManager and other classes does not report internal exceptions to the status logger. 
+o LOG4J2-1212:  Fix documentation to specify the correct default wait strategy used by async loggers. 
+o LOG4J2-1215:  Documentation/XSD inconsistencies. Thanks to Erik Kemperman. 
+o LOG4J2-1276:  LoggerMessageSupplierTest and LoggerSupplierTest are Locale sensitive. Thanks to Ludovic Hochet. 
+o LOG4J2-1251:  Fix JUL bridge issue where LogRecord.getParameters() is used when null. Thanks to Romain Manni-Bucau. 
+o LOG4J2-1254:  Fix typo in Flow Tracing documentation. Thanks to Josh Trow. 
+o LOG4J2-920:  ClassNotFoundException for BundleContextSelector when initialising in an OSGi environment. Thanks to Ludovic Hochet. 
+o LOG4J2-1275:  Fix RollingAppenderNoUnconditionalDeleteTest repeat test runs from failing. Thanks to Ludovic Hochet. 
+o LOG4J2-1262:  Stop throwing unnecessary exception in Log4jServletContextListener.contextDestroyed(). 
+o LOG4J2-1227:  NullPointerException in MapLookup.lookup if the event is null. Thanks to Olivier Lemasle. 
+o LOG4J2-1050:  Add a Log4jLookup class to help write log files relative to log4j2.xml. Thanks to Adam Retter. 
+o LOG4J2-1310:  JndiLookup mindlessly casts to String and should use String.valueOf(). 
+o LOG4J2-248:  Log4jWebInitializerImpl: Use Thread instead of Class for fallback classloader. 
+o LOG4J2-1330:  Fix NoClassDefFoundError in ReflectionUtil on Google App Engine. 
 
 Changes:
-o LOG4J2-649:  Add PurgePolicy and IdlePurgePolicy to RoutingAppender. Thanks to Aleksey Zvolinsky. 
-o LOG4J2-1202:  Remove ConfigurationMonitor. The WatchManager is now used to check for configuration changes. 
-o LOG4J2-1174:  Update Jackson from 2.6.2 to 2.6.3. 
-o LOG4J2-1207:  Update kafka-clients from 0.8.2.2 to 0.9.0.0. 
+o LOG4J2-1356:  (GC) GelfLayout does now support garabage-free logging (with compressionType=OFF). 
+o LOG4J2-1343:  (GC) ConsoleAppender is now garbage-free by default. This logic is reusable for all AbstractOutputStreamAppender subclasses. 
+o LOG4J2-1318:  (GC) Avoid allocating unnecessary temporary objects in LoggerContext's getLogger methods. 
+o LOG4J2-1333:  (GC) Avoid allocating unnecessary temporary objects in MarkerManager's getMarker methods. 
+o LOG4J2-1321:  (GC) Avoid allocating unnecessary temporary objects in PatternLayout's NamePatternConverter and ClassNamePatternConverter. 
+o LOG4J2-1271:  (GC) ParameterizedMessage optimizations to avoid or at least postpone allocating temporary objects. 
+o LOG4J2-1283:  (GC) Provide ThreadLocal-based gc-free caching mechanism in DatePatternConverter for non-webapps. 
+o LOG4J2-1291:  (GC) Update PatternLayout to utilize gc-free mechanism for LogEvent processing. 
+o LOG4J2-1292:  (GC) Update RandomAccessFileAppender and RollingRandomAccessFileAppender to utilize gc-free Layout.encode() method. 
+o LOG4J2-1272:  (GC) Improve LoggerConfig's data structure for AppenderControl objects to avoid allocating temporary objects during
+        traversal for each log event. 
+o LOG4J2-1375:  Update SLF4J from 1.7.13 to 1.7.21. 
+o LOG4J2-1374:  Migrate tests from Logback 1.1.3 to 1.1.7. 
+o LOG4J2-1384:  Update Apache Commons CSV from 1.2 to 1.3. 
+o LOG4J2-1365:  (Log4j-internal) Provide message text as CharSequence for some message types to optimize some layouts. 
+o LOG4J2-1345:  (Doc) Clarify documentation for properties that control Log4j behaviour. 
+o LOG4J2-1255:  Add enhanced entry and exit methods. 
+o LOG4J2-1380:  Update Jackson from 2.7.3 to 2.7.4. 
+o LOG4J2-1304:  Update Jackson from 2.7.0 to 2.7.2. 
+o LOG4J2-1253:  Update LMAX Disruptor from 3.3.2 to 3.3.4. 
+o LOG4J2-1219:  Update SLF4J from 1.7.12 to 1.7.13. 
+o LOG4J2-1239:  Update Jackson from 2.6.3 to 2.6.4. 
+o LOG4J2-1249:  Update Jackson from 2.6.4 to 2.7.0. 
+o LOG4J2-1351:  Update Jackson from 2.7.2 to 2.7.3. 
+o LOG4J2-1240:  Update Liquibase from 3.3.5 to 3.4.2. 
+o LOG4J2-1294:  Update Kafka client from 0.9.0.0 to 0.9.0.1. 
+o LOG4J2-1352:  Update javax.mail from 1.5.4 to 1.5.5. 
+o LOG4J2-1358:  Update Apache Commons Compress from 1.10 to 1.11. 
+o LOG4J2-1388:  Update Google java-allocation-instrumenter from 3.0 to 3.0.1. 
+o LOG4J2-1233:  Misleading Value In Properties Example. Thanks to Bahri Gencsoy. 
+o LOG4J2-1300:  Remove serializability from classes that don't need it. 
+o LOG4J2-1306:  JeroMqAppender should use ShutdownCallbackRegistry instead of runtime hooks. 
+o LOG4J2-1308:  Remove need to pre-specify appender et al. identifiers in property file config format. 
+o LOG4J2-1206:  org.apache.logging.log4j.core.LoggerContext#updateLoggers should call firePropertyChangeEvent. 
+o LOG4J2-1322:  Update Log4j 1.x migration guide to include information about system property lookup syntax changes. 
 
 
-Apache Log4j 2.5 requires a minimum of Java 7 to build and run. Log4j 2.3 was the last release that
+Apache Log4j 2.6 requires a minimum of Java 7 to build and run. Log4j 2.3 was the last release that
 supported Java 6.
 
 Basic compatibility with Log4j 1.x is provided through the log4j-1.2-api component, however it does not implement some of the

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/27c86df7/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 61efd97..e28bbb5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -182,8 +182,8 @@
   <properties>
     <!-- make sure to update these for each release! -->
     <log4jParentDir>${basedir}</log4jParentDir>
-    <Log4jReleaseVersion>2.5</Log4jReleaseVersion>
-    <Log4jReleaseCount>ninth</Log4jReleaseCount>
+    <Log4jReleaseVersion>2.6</Log4jReleaseVersion>
+    <Log4jReleaseCount>tenth</Log4jReleaseCount>
     <Log4jReleaseManager>Ralph Goers</Log4jReleaseManager>
     <Log4jReleaseKey>B3D8E1BA</Log4jReleaseKey>
     <!-- <Log4jReleaseManager>Matt Sicker</Log4jReleaseManager>

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/27c86df7/src/changes/announcement.vm
----------------------------------------------------------------------
diff --git a/src/changes/announcement.vm b/src/changes/announcement.vm
index 4b5b726..838d086 100644
--- a/src/changes/announcement.vm
+++ b/src/changes/announcement.vm
@@ -27,11 +27,9 @@ many other modern features such as support for Markers, property substitution us
 a PatternLayout and asynchronous Loggers. In addition, Log4j 2 will not lose events while reconfiguring.
 
 This is the ${relCount} GA release. It contains several bugfixes and new features. The new features include
-the ability to specify delete actions during file rollover, a CRON-based triggering policy for file rollover,
-Support for JSR 223 scripts in filters, pattern selectors and delete actions, and a policy for removing
-idle appenders from the RoutingAppender. More details on the features and bugfixes are itemized below.
-
-Log4j 2 requires a minimum of Java 7.
+the ability to not generate any objects while logging if certain conditions are met, a new YAML Layout,
+the ability to merge configuration files, and documenting Log4j's performance against other logging
+frameworks and in various logging configurations. More details on the features and bugfixes are itemized below.
 
 ## Hack to improve layout: replace all pairs of spaces with a single new-line
 $release.description.replaceAll("  ", "

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/27c86df7/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 3593ad7..39b659a 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -23,7 +23,7 @@
     <title>Changes</title>
   </properties>
   <body>
-    <release version="2.6" date="2016-MM-DD" description="GA Release 2.6">
+    <release version="2.6" date="2016-05-25" description="GA Release 2.6">
       <action issue="LOG4J2-1270" dev="rpopma" type="add">
         (GC) Added support for garbage-free logging in steady state.
         This includes Async Loggers and logging synchronously to the console and to a file,