This release contains the first support of Java 9 as well as bugfixes and minor
enhancements. The Log4j API was modified to use java.util.ServiceLoader to locate Log4j implementations,
although the former binding mechanism is still supported. The Log4j jar is now a multi-release jar
to provide implementations of the Java 9 specific classes. Multi-release jars are not supported by
the OSGi specification so OSGi modules will not be able to take advantage of these implementations
but will not lose functionality as they will fall back to the implementations used in Java 7 and 8.
More details on the new features and fixes are itemized below.

Note that subsequent to the 2.9 release, for security reasons, SerializedLayout is deprecated and no
longer used as default in the Socket and JMS appenders. SerializedLayout can still be used as before,
but has to be specified explicitly.

The Apache Log4j 2 team is pleased to announce the Log4j 2.8 release!
This release contains several bugfixes and new features. The new features include the ability
to have the RollingFileAppender log directly to the archive files,
a new Apache Cassandra appender,
a new ThreadContext::getThreadContextMap API method for custom ThreadContext implementations,
support for variables in GelfLayout's additional fields, and
support for Lookups in properties' default values.
Also, this release continues the GC-free epic by updating many more filters and pattern layout
converters so that they no longer allocate temporary objects during steady state logging.
More details on the new features and fixes are itemized below.
[Read More]

The Apache Log4j 2 team is pleased to announce the Log4j 2.7 release! 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.[Read More]

Log4j 2.7 will be released in a few days. The community is now reviewing the site and the artifacts for any last minute showstopper. Meanwhile, you may be interested in a sneak peek into what is coming.

Did you know that Log4j 2 is nominated for the JAX Innovation Awards?
Vote for Log4j 2 if you like its performance, garbage-free logging, and easy and flexible configuration! Voting closes September 29th, 2016.

This is a general call-to-arms for everyone who uses log4net as their
logging solution. If log4net is the logging framework that you are
using and would like to keep using in the future it is time now to get
involved. The project needs a larger developing community to move on!
We really need more people who want to shape the future of log4net at
the Apache Software Foundation.

In all the time since log4net has been started by Nicko Cadell more
than ten years ago, there have never been more than two or three
people regularly contributing to it. As is normal in open source
projects people have come and gone when their interests or just the
amount of time they could invest have changed.

At the moment Dominik Psenner and Stefan Bodewig are the only people
semi-actively working on log4net and neither of them is able to devote
as much time to the project as they'd like to and as would be
required.

Realistically log4net is maintenance mode where development of new
features is not going to happen.

This has repeatedly made log4net lag behind recent developments in the
.NET world. It took a long time to get a version out that properly
worked with .NET 4.0 in 2011 and adaptions to .NET 4.5 also took much
longer than many users would have wished. We are seeing it again with
.NET Core right now. In addition there are many unresolved issues in
log4net's JIRA.

Despite this there are more than 2500 downloads of the logging
framework every day from nuget. We are asking you, the log4net
community, to get your hands dirty.

Right now we are in the process of creating a log4net release that
works for .NET Core. It is a very targeted effort and it is very
unlikely Dominik and Stefan will be able to contribute more in the
future than we did during the past months.

If you are willing to help, please join log4net's dev mailing list and
raise your hand. Look through log4net's issue tracker and pick things
you'd like to work on. If you don't know where to start, please ask,
Dominik and Stefan will be there to help.

If there is anything holding you back from contributing, let's discuss
it and get it out of the way. Nothing is carved into stone, neither
what the future of log4net holds nor how we make it happen.

We are very happy that Nick Williams joined the Apache Logging Services PMC. He is involved mainly in the development of Log4j 2.0 but also keeps an eye on Log4cxx. Thanks Nick for all what you did so far and all the best for you new role at Apache Logging.

The Apache Log4j 2 team is proud to announce the Log4j 2.0-rc1 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 twelfth release and first release candidate of Log4j 2 and is being made available to encourage use and feedback from the community. Rapid feedback is especially critical at this point since a general availability release is on the horizon.

Bug fixes and enhancements

This release contains several changes that break binary and backwards compatibility
with previous versions. Please read the release notes correctly so that you
can adjust your usage of Log4j 2, if necessary.

LOG4J2-512: Exposed Log4j web support interface and methods and the LoggerContext through ServletContext attributes so that threads not affected by filters (such as asynchronous threads) can utilize the LoggerContext. Also updated the Log4j filter so that it supports async. Thanks to Chandra Sekhar Kakarla, Matt Sicker.

LOG4J2-409: Created a utility to properly escape backslashes before creating URIs, and changed URI creation to use the utility instead of instantiating URI directly. Thanks to Frank Steinmann, Thomas Neidhart.

LOG4J2-344: Changed the Servlet 3.0 auto-initializer to add the filter by class to get around a WebLogic bug. Thanks to Keir Lawson, Tomasz Wladzinski.

LOG4J2-359: Changed the Servlet 3.0 auto-initializer so that it does nothing in a Servlet 2.5 or older application. This ensures behavioral consistency across containers. This includes additional fixes to abort initialization if a duplicate filter already exists and to check the actual Servlet EFFECTIVE version. Thanks to Abhinav Shah.

LOG4J2-517: Switch in log4j-1.2-api Category.getEffectiveLevel has no cases for FATAL, OFF.

LOG4J2-406: (JMX) Unregister all log4j JMX MBeans when the LoggerContext is stopped to allow web application classes to be GC-ed on undeploy. Thanks to Kerrigan Joseph.

LOG4J2-532: Resource leak in Flume appender when it cannot create a BerkeleyDB db.

Apache Log4j 2.0-rc1 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 group ID 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:

The Apache Log4j 2 team is pleased to announce the Log4j 2.0-beta9 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 eleventh release of Log4j 2 and is being made available to encourage use and feedback from the community.

LOG4J2-317: Renamed FastFileAppender and FastRollingFileAppender to RandomAccessFileAppender
and RollingRandomAccessFileAppender. Configurations using the Fast(Rolling)File element
no longer work and should be modified to use the (Rolling)RandomAccessFile element.

Changed the "suppressExceptions" configuration attribute for all Appenders to "ignoreExceptions" to avoid
confusion with Java 7 suppressed exceptions. Also renamed the Appender#isExceptionSuppressed() method to
Appender#ignoreExceptions() to avoid the same confusion. All Appenders by default internally log and then ignore
exceptions encountered while logging. Setting "ignoreExceptions" to "false" on an Appender causes it to allow
exceptions to propagate to the caller. You must set "ignoreExceptions" to "false" for Appenders you are wrapping
in the Failover Appender.

Changed the (relatively new) PatternLayout configuration attribute "suppressExceptions" to
"alwaysWriteExceptions" to more correctly indicate what it does. As such, the meaning of this attribute has
reversed (previous "true"s should become "false"s, and vice versa). Since this was an undocumented attribute up
until now, it's unlikely this change will affect any users.

LOG4J2-355: Add support for multiple SD-ELEMENTs in a RFC 5424 syslog message. Thanks to Tibor Benke.

Cleaned up tests and cleared up documentation for the JPA appender following the resolution of EclipseLink
issue #412454.

Improved site by adding quick jump-off page and menu for Javadoc links for all components.

Apache Log4j 2.0-beta9 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:

The Apache log4net library is a tool to help the programmer output log
statements to a variety of output targets. log4net is a port of the
excellent Apache log4j framework to the Microsoft(R) .NET runtime.

log4net 1.2.12 is mostly a bugfix release in which more than thirty JIRA
issues have been resolved. See

Apache Log4J logo contest

Log4j 2.0 is looking for a new logo!

After 12 years, the Log4j project is getting ready for a brand new major release: version 2.0. This new major version is a reboot of this project in many ways: it is not only time to change the version number to 2.0 but also time to refresh the Log4j logo.

Log4j 2 is very different from Log4j 1. Log4j 2 is more reliable and faster than its predecessor and comparable frameworks.

The team has grown after years of stagnation and there is now a lot of activity on our lists. We are now approaching the 2.0 release after eight beta releases.

With our new logo, we want to show the Java community that Log4j is back.

We would like to open participation to the community to create this new logo.

While we will accept PNG image formats for the contest, we prefer vector based formats (SVG).
You can convert pixel-based formats produced with Gimp or Photoshop to SVG with free tools like Inkscape (http://inkscape.org)

Please note that a logo should not contain too many details.

HOW THE WINNING LOGO IS CHOSEN

We invite everyone to vote on the mailing lists. The votes of Apache Logging Committers are binding.

If the community submits more than 10 Logos, voting will proceed in two rounds.

In the first round, the 10 logos with the most +1 votes graduate to round two.

In the second round, the logo with the most +1 will win the contest.

The majority of the Apache Logging PMC can veto a logo.

We will accept the logo when all votes are successful and the ICLA of the logo contributor is on file.