Is it still relevant to have this section in the documentation? News
Log4j 2 is now available for production. The API for Log4j 2 is not compatible with Log4j 1.x, however an adapter is available to allow applications to continue to use the Log4j 1.x API. Adapters are also available for Apache Commons Logging and SLF4J. On Mon, Sep 21, 2015 at 4:04 AM, Ralph Goers <[email protected]> wrote: > This is a vote to release Log4j 2.4, the next version of the Log4j 2 > project. > > Please download, test, and cast your votes on the log4j developers list. > [] +1, release the artifacts > [] -1, don't release because... > > The vote will remain open for 72 hours (or more if required). All > votes are welcome, but only Logging PMC votes are “officially” counted. As > always, at least 3 +1 votes and more positive than negative votes are > required. > > Changes in this version include: > > > New features: > > o LOG4J2-635: Add support for configuration via Properties. > > o LOG4J2-952: Add ConfigurationBuilder. > > o LOG4J2-599: Added support for Java 8 lambda expressions to lazily > construct a log message only if > > the requested log level is enabled. > > o LOG4J2-1118: Updated Logger wrapper generator tool to add Java 8 lambda > support for custom log levels. > > o LOG4J2-1107: New Appender for Apache Kafka. Thanks to Mikael Ståldal. > > o LOG4J2-1113: New publisher Appender for ZeroMQ (using JeroMQ). Thanks > to Gary Gregory. > > o LOG4J2-1088: Add Comma Separated Value (CSV) layouts for parameter and > event logging. Thanks to Gary Gregory. > > o LOG4J2-1090: Add Core Configurator APIs to change a logger's level. > > o LOG4J2-1105: Add API org.apache.logging.log4j.Level.isInRange(Level, > Level). Thanks to Gary Gregory. > > o LOG4J2-1106: Add a LevelRangeFilter class. Thanks to Gary Gregory. > > o LOG4J2-1076: Added support for system nanosecond time in pattern layout. > > o LOG4J2-1075: Added support for compressing to bzip2 format on file > rollover. > > o LOG4J2-1077: Support additional Apache Commons Compress compression > formats on rollover: Deflate, Pack200, XY. > > o LOG4J2-767: New module for Liquibase integration. Thanks to Mikael > Ståldal. > > o LOG4J2-1023: New RewritePolicy for changing level of a log event. > Thanks to Mikael Ståldal. > > o LOG4J2-1015: Add a way to route messages based on the %marker in Layout > for RoutingAppender. Thanks to Daniel Marcotte. > > o LOG4J2-1050: Add a Log4jLookup class to help write log files relative > to log4j2.xml. Thanks to Adam Retter. > > o LOG4J2-1057: Add API > org.apache.logging.log4j.LogManager.getFormatterLogger(). > > o LOG4J2-1066: Expose Log4jContextFactory's ShutdownCallbackRegistry. > Thanks to Charles Allen. > > > Fixed Bugs: > > o LOG4J2-1121: Fixed potential race condition on reconfiguration. > Introduced ReliabilityStrategy to facilitate > > switching between different mechanisms for preventing log events > from being dropped on reconfiguration. > > o LOG4J2-1123: Core Configurator.initialize(String, ClassLoader, String) > fails to work when config location is a file path. Thanks to Gary Gregory. > > o LOG4J2-1117: OutputStreamManager in ConsoleAppender leaking managers. > Thanks to Marcus Thiesen. > > o LOG4J2-1044: Write pending events to Flume when the appender is stopped. > > o LOG4J2-1108: NullPointerException when passing null to > java.util.logging.Logger.setLevel(). Thanks to Mikael Ståldal. > > o LOG4J2-1110: org.apache.logging.log4j.jul.CoreLogger.setLevel() checks > for security permission too late. > > o LOG4J2-1084: Misleading StatusLogger WARN event in LogManager with > java.util.Map. Thanks to Philipp Schneider. > > o LOG4J2-1051: NoClassDefFoundError when starting app on Google App > Engine. Thanks to Lukasz Lenart. > > o LOG4J2-684: ExtendedThrowablePatternConverter does not print suppressed > exceptions. Thanks to Joern Huxhorn, Mauro Molinari. > > o LOG4J2-1069: Improper handling of JSON escape chars when deserializing > JSON log events. Thanks to Sam Braam. > > o LOG4J2-1068: Exceptions not logged when using TcpSocketServer + > SerializedLayout. Thanks to Andy McMullan. > > o LOG4J2-1067: ThrowableProxy getExtendedStackTraceAsString throws NPE on > deserialized nested exceptions. Thanks to Sam Braam. > > o LOG4J2-1049: AsyncAppender now resets the thread interrupted flag after > catching InterruptedException. Thanks to Robert Schaft. > > o LOG4J2-1048: FileConfigurationMonitor unnecessarily calls > System.currentTimeMillis() causing high CPU usage. Thanks to Nikhil. > > o LOG4J2-1037: Backward compatibility issue in log4j-1.2-api NDC pop() > and peek(). Thanks to Marc Dergacz. > > o LOG4J2-1025: Custom java.util.logging.Level gives null Log4j Level and > causes NPE. Thanks to Mikael Ståldal. > > o LOG4J2-1033: SimpleLogger creates unnecessary Map objects by calling > ThreadContext.getContext() instead of getImmutableContext(). Thanks to > Mikael Ståldal. > > o LOG4J2-1026: HighlightConverter does not obey noConsoleNoAnsi. > > o LOG4J2-1019: ZipCompressAction leaves files open until GC when an IO > error takes place. > > o LOG4J2-1020: GzCompressAction leaves files open until GC when an IO > error takes place. > > o LOG4J2-1038: Incorrect documentation for layout default charset. Thanks > to Gili. > > o LOG4J2-1042: Socket and Syslog appenders don't take timeout into > account at startup. Thanks to Guillaume Turri. > > o LOG4J2-934: Circular suppressed Exception throws StackOverflowError. > Thanks to Kenneth Gendron. > > o LOG4J2-1046: Circular Exception cause throws StackOverflowError. Thanks > to Kenneth Gendron. > > o LOG4J2-982: Use System.nanoTime() to measure time intervals. Thanks to > Mikhail Mazurskiy. > > o LOG4J2-1045: Externalize log4j2.xml via URL resource. Thanks to Günter > Albrecht. > > o LOG4J2-1058: Log4jMarker#contains(String) does not respect > org.slf4j.Marker contract. Thanks to Daniel Branzea. > > o LOG4J2-1060: Log4jMarker#contains(Marker) does not respect > org.slf4j.Marker contract. > > o LOG4J2-1061: Log4jMarker#remove(Marker) does not respect > org.slf4j.Marker contract. > > o LOG4J2-1062: Log4jMarker#add(Marker) does not respect org.slf4j.Marker > contract. > > o LOG4J2-1064: org.apache.logging.slf4j.Log4jMarker does not implement > org.slf4j.Marker.equals(Object) org.slf4j.Marker.hashCode(). > > o LOG4J2-889: Header in layout should not be written on application > startup if appending to an existing file. Fixes LOG4J2-1030. Thanks to > Maciej Karaś, Kenneth Leider. > > o LOG4J2-918: Clarify documentation for combining async with sync loggers. > > o LOG4J2-1078: GelfLayout throws exception if some log event fields are > null. Thanks to Mikael Ståldal. > > > Changes: > > o LOG4J2-1017: Update Java platform from Java 6 to 7. From this version > onwards, log4j 2 requires Java 7. > > o LOG4J2-812: PatternLayout timestamp formatting performance improvement: > replaced synchronized SimpleDateFormat with > > Apache Commons FastDateFormat. This and better caching resulted in > a ~3-30X faster timestamp formatting. > > o LOG4J2-1097: PatternLayout timestamp formatting performance > improvement: predefined date formats (and variants using > > a period '.' millisecond separator instead of ',') are now > formatted ~2-10X faster than other date formats. > > o LOG4J2-1096: Improved performance of > ParameterizedMessage::getFormattedMessage by ~2X. > > o LOG4J2-1120: LoggerConfig performance improvements: avoid unnecessary > lock acquisition, use more efficient data structure. > > o LOG4J2-1125: PatternLayout performance improvement by caching and > reusing a ThreadLocal StringBuilder. > > o LOG4J2-1114: Add thread name to status logger layout. > > o LOG4J2-1010: Pass log event when interpolating logger properties. > > o LOG4J2-1044: Support batchSize in FlumeAvroManager. > > o LOG4J2-1065: Define org.apache.logging.log4j.Marker.equals(Object) and > org.apache.logging.log4j.Marker.hashCode(). > > o LOG4J2-1063: Avoid creating temporary array object in > org.apache.logging.slf4j.Log4jMarker.iterator(). > > o LOG4J2-890: log4j-web-2.1 should workaround a bug in JBOSS EAP 6.2. > Thanks to Hassan Kalaldeh, Robert Andersson, Remko Popma. > > o LOG4J2-403: MongoDB appender, username and password should be optional. > Thanks to Poorna Subhash P, Jeremy Lautman. > > o LOG4J2-1035: Log4j2 tries to SystemClassLoader when running on Google > AppEngine. > > o LOG4J2-1022: Allow a list of keys to be specified in the MDC pattern > converter. > > o LOG4J2-959: Fix FindBugs DM_DEFAULT_ENCODING bug in > SimpleLogger.logMessage() and simplify code. > > o LOG4J2-1036: Update Apache Flume from 1.5.2 to 1.6.0. > > o LOG4J2-1041: Update MongoDB driver from 2.11.2 to 2.13.2. > > o LOG4J2-1018: Update database tests from H2 1.3.175 to 1.3.176. > > o LOG4J2-1070: Update Java Mail from 1.5.2 to 1.5.4. > > o LOG4J2-1079: Update Jackson from 2.5.3 to 2.5.4. > > o LOG4J2-1879: Update Jackson from 2.5.4 to 2.6.0. > > o LOG4J2-1092: Update Jackson from 2.6.0 to 2.6.1. > > o LOG4J2-1104: Update Apache Commons Compress from 1.9 to 1.10. > > > Removed: > > o Removed experimental interface LevelLogger which got committed to master > by mistake. > > Tag:https:// > <https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=tree;h=380e13cd7ab965942f1d5cfabd73dd056d728b28;hb=383a8194acab4a740d22b69c023ca3af6cb9c664> > git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=tree;h=380e13cd7ab965942f1d5cfabd73dd056d728b28;hb=383a8194acab4a740d22b69c023ca3af6cb9c664 > or > > a) for a new copy do "git clone > https://git-wip-us.apache.org/repos/asf/logging-log4j2.git" and then "git > checkout tags/log4j-2.4" > b) for an existing working copy to “git pull” and then “git checkout > tags/log4j-2.4” > > Web Site: http://people.apache.org/~rgoers/log4j2/ > > Artifacts: > https://repository.apache.org/content/repositories/orgapachelogging-1015 > > You may download all the artifacts by executing: > > wget -e robots=off --cut-dirs=7 -nH -r -p -np --no-check-certificate > https://repository.apache.org/content/repositories/orgapachelogging-1015/org/apache/logging/log4j/ > > Ralph > > > > > > -- [image: MagineTV] *Mikael Ståldal* Senior software developer *Magine TV* [email protected] Regeringsgatan 25 | 111 53 Stockholm, Sweden | www.magine.com Privileged and/or Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case, you should destroy this message and kindly notify the sender by reply email.
