Apache Logging Services

Friday October 07, 2016

Log4j 2.7 released

The Apache Log4j 2 team is pleased to announce the Log4j 2.7 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, lambda expressions for lazy logging, property substitution using Lookups, multiple patterns on a PatternLayout and asynchronous Loggers. Another notable Log4j 2 feature is the ability to be "garbage-free" (avoid allocating temporary objects) while logging. In addition, Log4j 2 will not lose events while reconfiguring.

This release contains several bugfixes and new features. The new features include new logging API modules for Scala 2.10 and 2.11, and support for various non-blocking queue implementations in AsyncAppender. Furthermore the ThreadContext map can now be configured to be garbage-free, and users can now inject context data from other sources than ThreadContext. Context data values can be any Object, not just Strings. More details on the fixes are itemized below.

Note that subsequent to the 2.6 release a minor source incompatibility was found due to the addition of new methods to the Logger interface. If you have code that does:

logger.error(null, “This is the log message”, throwable);

or similar with any log level you will get a compiler error saying the reference is ambiguous. To correct this either do:

logger.error(“This is the log message”, throwable);


logger.error((Marker) null, “This is the log message”, throwable);

The Log4j 2.7 API, as well as many core components, maintains binary compatibility with previous releases.

GA Release 2.7

Changes in this version include:

New features:

  • LOG4J2-1578: RoutingAppender can be configured with scripts. Add Script in a Routes element.
  • LOG4J2-1597: Add a ScriptAppenderSelector to create an Appender specified by a Script.
  • LOG4J2-1349: (GC) Added support for garbage-free ThreadContext map. Disabled by default, users need to enable this explicitly.
  • LOG4J2-1447: (GC) Changed LogEvent's internal data structure for context data to be garbage-free. Added method LogEvent#getContextData(), deprecated method #getContextMap().
  • LOG4J2-1010: Users can now inject context data from other sources than ThreadContext. Values can be any Object, not just Strings. Thanks to Mikael Staldal.
  • LOG4J2-1568: Added support for java.util.concurrent.LinkedTransferQueue to AsyncAppender.
  • LOG4J2-1430: Added optional support for Conversant DisruptorBlockingQueue in AsyncAppender. Thanks to John Cairns.
  • LOG4J2-1439: Added optional support for JCTools MPSC bounded lock-free queue in AsyncAppender. Thanks to Anthony Maire.
  • LOG4J2-1558: SocketAppender now supports IO buffering.
  • LOG4J2-1557: Add a Builder for the SocketAppender (deprecates factory method).
  • LOG4J2-1609: Add a Builder to ServletAppender and deprecate factory method.
  • LOG4J2-1553: AbstractManager now implements AutoCloseable.
  • LOG4J2-1528: Added ability to generate Log4j 2-style XML configuration file from ConfigurationBuilder.
  • LOG4J2-1181: Added Logging API for Scala 2.10 and 2.11.
  • LOG4J2-1512: Added options to exclude stack trace from JSON, XML and YAML layouts.
  • LOG4J2-1539: Added Core API Configurator.shutdown(LoggerContext, long, TimeUnit).
  • LOG4J2-1501: FileAppender is now able to create files on-demand.
  • LOG4J2-1504: RollingFileAppender is now able to create files on-demand.
  • LOG4J2-1471: [PatternLayout] Add an ANSI option to %xThrowable.
  • LOG4J2-1472: org.apache.logging.log4j.core.LoggerContext now implements Closeable.
  • LOG4J2-1458: [PatternLayout] Add an ANSI option to %message.
  • LOG4J2-1505: Create a Builder for the FileAppender plugin to facilitate adding attributes in the future.
  • LOG4J2-1507: Allow Builders to be completely generic.
  • LOG4J2-1508: Allow a Builder to subclass another Builder.
  • LOG4J2-1516: Add ThreadContextMap2 interface supporting method putAll(Map). Thanks to Gary Gregory.
  • LOG4J2-1519: Add ThreadContext.putAll(Map).
  • LOG4J2-1520: Add JUnit Rule implementations to manage the thread context.
  • LOG4J2-1547: The Core AbstractConfiguration now tracks its LoggerContext and add Configuration.getLoggerContext().
  • LOG4J2-1540: The Core AbstractManager now tracks its LoggerContext.
  • LOG4J2-1577: Add a Builder to the RoutingAppender and deprecate factory method.

Fixed Bugs:

  • LOG4J2-1618: Fixed ClassCastException when using JUL logging during shutdown. Thanks to Raman Gupta.
  • LOG4J2-1620: 2.7-rc1: RollingFileAppender immediateFlush default value should be true, not false. Thanks to Sascha Scholz.
  • LOG4J2-1611: Improved performance of context data injector for web applications to be on par with standalone applications.
  • LOG4J2-1591: Introduced new interface LifeCycle2 with stop(long,TimeUnit) method to avoid breaking backwards compatibility with new Configurator.shutdown(LoggerContext, long, TimeUnit) API.
  • LOG4J2-1590: Fixed issue with filters extending AbstractFilter that did not override methods with unrolled varargs.
  • LOG4J2-1583: Fixed scrambled log messages triggered by nested logging from toString() method of a logging parameter object. Thanks to Larry West.
  • LOG4J2-1259: Log4j threads are no longer leaking on Tomcat shutdown. Thanks to Misagh Moayyed, Steffen Offermann.
  • LOG4J2-1051: When starting on Google App Engine, Interpolator now suppresses the NoClassDefFoundError stack trace for the jvmrunargs lookup. Thanks to Lukasz Lenart.
  • LOG4J2-1582: When initializing on platforms where JMX is not available, Interpolator component no longer prints stack trace for warning messages.
  • LOG4J2-1581: Unregistering JMX components no longer prints a stack trace when the MBean has already been unregistered.
  • LOG4J2-1313: Support Property values to be specified in configuration as a value attribute as well as an element. Thanks to Philipp Knobel, Leon Finker.
  • LOG4J2-1575: (GC) LoggerConfig now stores configuration properties in a List, not a Map to prevent creating temporary Iterator objects. Added method LoggerConfig#getPropertyList(), deprecated method #getProperties().
  • LOG4J2-1457: Fixed class loader deadlock when using async logging and extended stack trace pattern. Thanks to Leon Finker.
  • LOG4J2-1563: Fix to prevent Log4j 2.6.2 and higher from losing exceptions when a security manager is present. Thanks to Jason Tedor.
  • LOG4J2-1530: Fixed issue where LogEvent.getContextStack() returned null.
  • LOG4J2-1518: Prevent deadlock in Async Loggers when queue is full and logged Object's toString() logs another message. Thanks to Leon Finker.
  • LOG4J2-1542: Prevent ArrayIndexOutOfBoundsException in ParameterizedMessage.formatTo for single-char or empty messages. Thanks to Rogerio Lecariao Leite.
  • LOG4J2-1549: Fixed issue where AsyncLoggerContextSelector+PropertiesConfigurationBuilder defaulted to includeLocation=true. Thanks to Jason Bedard.
  • LOG4J2-1562: Prevent SocketAppender memory usage from growing unbounded if it cannot connect to a server.
  • LOG4J2-1559: Prevent NPE in Level.isInRange. Thanks to Andrey Plotkin.
  • LOG4J2-1511: DynamicThresholdFilter filtered incorrectly when params were passed as individual arguments instead of varargs. Thanks to Srikanth Surukuntu.
  • LOG4J2-1548: [CronTriggeringPolicy] ConfigurationScheduler scheduled the task infinitely after first fire.
  • LOG4J2-1506: Log4j should not unregister JMX MBeans when log4j2.disable.jmx property is true. Thanks to Johannes Schleger.
  • LOG4J2-1490: Log4j2 should postpone creating log file until the appender actually receives an event. Thanks to Krzysztof Taborski.
  • LOG4J2-1320: Support loading custom plugins from jar files and directories whose classpath entries use the "vfs" URL protocol. Thanks to Paresh Varke, Pierrick Hymbert.
  • LOG4J2-1541: Fix file handle resource leak in XmlConfiguration.XmlConfiguration(ConfigurationSource).
  • LOG4J2-1538: Prevent NPE when dynamically removing filters. Thanks to Igor Karpov.
  • LOG4J2-1532: Attributes were not merged properly in composite configurations.
  • LOG4J2-1529: Attributes were not merged properly in composite configurations. Thanks to Sridevi Narra.
  • LOG4J2-1527: Prevent NPE in RingBufferLogEvent.getFormattedMessage() when used in web applications. Thanks to Jose Leon.
  • LOG4J2-905: Added ability to disable (date) lookup completely for compatibility with other libraries like Camel. Thanks to Moritz Loser.
  • LOG4J2-1526: Added support for setting StatusLogger destination in ConfigurationBuilder.
  • LOG4J2-1448: Allow comma separated agents, host list to be passed to FlumeAppender. Thanks to Keith Laban.
  • LOG4J2-1500: Merging configurations failed with an NPE when comparing Nodes with different attributes. Thanks to Jose Leon.
  • LOG4J2-1482: Fixed improper header in CsvParameterLayout. Thanks to Sumit Singhal.
  • LOG4J2-1199: Documented that JVM Input Arguments Lookup (JMX) is not available on Google App Engine.
  • LOG4J2-1438: (GC) Added method getParameter() to ObjectMessage (and ReusableObjectMessage).
  • LOG4J2-1488: (GC) Fixed ISO8601 %date conversion pattern with a period '.' separator for milliseconds is now garbage free. Thanks to Richard Zschech.
  • LOG4J2-1489: (GC) Fixed %date conversion patterns with a timezone parameter are now garbage free. Thanks to Richard Zschech.
  • LOG4J2-1279: Prevent NullPointerException in FastDateParser$TimeZoneStrategy. Thanks to Tony Baines.
  • LOG4J2-1341: (GC) HighlightConverter and StyleConverter are now GC-free. Thanks to Richard Zschech.
  • LOG4J2-1467: [OSGi] Fixed missing import package. Thanks to Ralf, Gary Gregory.
  • LOG4J2-351: [OSGi] Fixed wrong Fragment-Host in manifest files. Thanks to Roland Weiglhofer.
  • LOG4J2-1313: Properties declared in configuration can now have their value either in the element body or in an attribute named "value". Thanks to Philipp Knobel.
  • LOG4J2-1235: org.apache.logging.log4j.core.appender.routing.IdlePurgePolicy was not working correctly. Thanks to Niranjan Rao, Sascha Scholz, Aleksey Zvolinsky.
  • LOG4J2-1502: Fixed issue where CsvParameterLayout and CsvLogEventLayout inserted NUL characters if data starts with {, (, [ or " Thanks to Sumit Singhal.
  • LOG4J2-1573: Layout is no longer optional. Thanks to Steffen Offermann.
  • LOG4J2-1608: ServletAppender does not provide throwable object to ServletContext.
  • LOG4J2-1599: Prevent potential NPE in org.apache.logging.log4j.message.ParameterFormatter.formatMessage3(StringBuilder, char[], int, Object[], int, int[]).
  • LOG4J2-1600: Prevent potential NPE due to org.apache.logging.log4j.core.layout.MarkerPatternSelector.createSelector(PatternMatch[], String, boolean, boolean, Configuration).
  • LOG4J2-1601: Prevent potential NPE due to org.apache.logging.log4j.core.layout.ScriptPatternSelector.createSelector(AbstractScript, PatternMatch[], String, boolean, boolean, Configuration).
  • LOG4J2-1602: Prevent potential NPE in org.apache.logging.log4j.core.util.datetime.FormatCache.MultipartKey.equals(Object) when object is null.
  • LOG4J2-1603: Redo hashCode() and equals() methods in org.apache.logging.log4j.core.net.ssl classes.
  • LOG4J2-1610: Add targetNamespace to log4j-config.xsd. GitHub #43. Thanks to Shubhankar.
  • LOG4J2-1619: new Log4jLogEvent().toString() throws an NPE.


  • LOG4J2-1604: Log4j2 TcpSocketServer in background. Thanks to Colin Hillman.
  • LOG4J2-1574: Allow the RollingFileAppender to use default pattern layout.
  • LOG4J2-1556: Custom Log4j threads now extend Log4jThread.
  • LOG4J2-1605: Improve error messages for TcpSocketServer and UdpSocketServer.
  • LOG4J2-1458: Updated Jackson from 2.7.5 to 2.8.0.
  • LOG4J2-1494: Updated Jackson from 2.8.0 to 2.8.1.
  • LOG4J2-1569: Updated Jackson from 2.8.1 to 2.8.2.
  • LOG4J2-1598: Updated Jackson from 2.8.2 to 2.8.3.
  • LOG4J2-1495: Updated LMAX Disruptor from 3.3.4 to 3.3.5.
  • LOG4J2-1496: Updated Kafka client from to
  • LOG4J2-1533: Updated Kafka client from to
  • LOG4J2-1487: Updated JMS test from ActiveMQ 5.13.3 to 5.13.4.
  • LOG4J2-1551: Updated JMS test from ActiveMQ 5.13.4 to 5.14.0.
  • LOG4J2-1543: Removed deprecated Core API org.apache.logging.log4j.core.util.Constants.UTF_8.
  • LOG4J2-1544: Removed deprecated Core API org.apache.logging.log4j.core.util.Assert.requireNonNull(T, String).
  • LOG4J2-1545: Removed deprecated Web API org.apache.logging.log4j.web.WebLookup.getServletContext().

Apache Log4j 2.7 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 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:



hello, friends, this site will help you to find out your disease which you are facing http://symptomsof.net

Posted by hppy romz on April 17, 2018 at 11:09 AM UTC #

this site provide the all calendar of 2019 http://2019printablecalendar.com/

Posted by hppy romz on April 17, 2018 at 11:11 AM UTC #

good http://www.gmail.com

Posted by aa on September 26, 2018 at 06:45 AM UTC #

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. Thank you for sharing the information.myparistours.com

Posted by hendry jullius on September 26, 2018 at 10:47 AM UTC #

Log4j 1.x, and provides many other modern features such as support for Markers. 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, Thank you for sharing the information.myparistours.com

Posted by hendry on September 27, 2018 at 06:37 AM UTC #

The Apache Logging Services Project makes and keeps up open-source programming identified with the logging of use conduct and discharged at no charge to the general population.

Posted by Natasha aiken on December 18, 2018 at 07:02 AM UTC #

Thanks for the information presented here. https://www.astrolika.com/compatibility/aries-man-cancer-woman.html

Posted by Kirti on June 07, 2019 at 03:21 PM UTC #

Facebook stories are something that keeps your status updated all the time. Let the world know what you are up to. This is itself a tiny world within. So, this needs to be taken care of. You can simply call Facebook customer service at toll free number +1-833-891-2999 and get a solution to all your Facebook hindrances including stories. https://emailcontacthelp.com/facebook-customer-service-number.html

Posted by mark on June 17, 2019 at 01:12 PM UTC #

Love this! Wish this was in my city, well done! what a lovely work

Posted by meds on July 19, 2019 at 10:16 PM UTC #

Amazing shots. I love the colours. Congrats! Fantastic and unic style.

Posted by health on July 19, 2019 at 11:20 PM UTC #

I like how its simple, yet it gets a lot across. Superb

Posted by teljurake1970 on July 19, 2019 at 11:43 PM UTC #

Very nice and simple, I like how it looks. it seems that gravity is non-existent for these guys :o) great captures. kinda freezes them in time perfectly.

Posted by budederro1980 on July 20, 2019 at 08:43 AM UTC #

gous very good

Posted by ciuphyvertio1970 on July 20, 2019 at 03:46 PM UTC #

Thanks! @Moustafa Ahmed Look great

Posted by agalalmat1989 on July 20, 2019 at 04:01 PM UTC #

Work with depth is great!

Posted by terfitube1986 on July 20, 2019 at 05:23 PM UTC #

awesome job it's great!!!!

Posted by loiwreakliatio1980 on July 20, 2019 at 05:42 PM UTC #

Great serial! :) just best

Posted by majifhava1982 on July 20, 2019 at 06:09 PM UTC #

Thank you @• UNOGRAFIK • !! I really like how you showed the process

Posted by laytofseha1970 on July 20, 2019 at 06:33 PM UTC #

Nice work and intensive exploration! sometimes it's scary just to open works like this, nice shot

Posted by claroniren1981 on July 20, 2019 at 10:57 PM UTC #

@Rabbixel Studio @eldion n. @Armine Parsian @Maliha Hasan @Halil Lekesiz @f1digitals Many thanks to you all! Tuyệt vời !

Posted by trepesosla1981 on July 20, 2019 at 11:58 PM UTC #

Great lighting! Gooood !!!!

Posted by ticdiobrunut1987 on July 21, 2019 at 12:47 AM UTC #

these are fantastic Cool idea, really original!

Posted by urgenlooper1981 on July 21, 2019 at 02:15 AM UTC #

the project is gorgeous! great job!

Posted by sisbasuater1986 on July 21, 2019 at 03:53 AM UTC #

Great style fun branding concept! great work

Posted by poalebcileg1980 on July 21, 2019 at 05:07 AM UTC #

Bellissimo Amazing work. Love it!

Posted by napnaphodo1977 on July 21, 2019 at 05:43 AM UTC #

Boom! very nice work. @F1 Digitals Studio @ArabZ . @Ambalika Surve Shinde @Sandeep Roy Thanks a lot!

Posted by lephocanlo1978 on July 21, 2019 at 06:21 AM UTC #

So much detail! Love it M'encanta!

Posted by treehweisachi1978 on July 21, 2019 at 06:53 AM UTC #

fantastico WONDERFUL JOB

Posted by veijulocot1979 on July 21, 2019 at 07:26 AM UTC #

@Sergey Stepanov Stepanov Thank you very much Really good and all those detail ❤️

Posted by hofemifi1979 on July 21, 2019 at 07:58 AM UTC #

Lovely work :) Nice work mate, currently planing my own night project of Venice.

Posted by crannonnare1972 on July 21, 2019 at 08:30 AM UTC #

Loved the simplicity 太好玩儿啦,特别那只猪猪

Posted by ternmceleser1983 on July 21, 2019 at 09:03 AM UTC #

These are so cute! They're very endearing. So much love and respect! Inspirational work for an inspirational event :)

Posted by decenteti1974 on July 21, 2019 at 09:36 AM UTC #

Mezmerizing :o very good

Posted by eagronivin1979 on July 21, 2019 at 10:08 AM UTC #

Fantastic job marvelous!

Posted by enbledlingpi1988 on July 21, 2019 at 10:41 AM UTC #

good theme todo hermoso

Posted by corddegoogfect1988 on July 21, 2019 at 11:14 AM UTC #

Post a Comment:
Comments are closed for this entry.



Hot Blogs (today's hits)

Tag Cloud