Apache Logging Services

Wednesday Feb 19, 2014

Nick Williams joined the Apache Logging PMC

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.

Monday Feb 17, 2014

Apache Log4j 2.0 RC1 released

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.

Changes in this version include:

New features:

  • LOG4J2-530: (JMX) JMX Client GUI should dynamically update when LoggerContext MBeans are registered/unregistered in MBean server.
  • LOG4J2-479: ThreadContext now uses plain ThreadLocal by default, unless system property isThreadContextMapInheritable has value "true". Thanks to MK.
  • LOG4J2-481: Add Stream interface to Loggers. Thanks to Matt Sicker.
  • LOG4J2-482: Documentation fix: The attribute of Route to refer to an appender is "ref" not "AppenderRef". Thanks to Hongdi Ren.
  • LOG4J2-467: Added option to toggle Thread name caching in AsyncLogger. Thanks to Anthony Baldocchi.
  • LOG4J2-423: Added MBeans for instrumenting AsyncAppenders and AsyncLogger RingBuffers, exposing queue size, remaining capacity and other attributes.
  • LOG4J2-420: Create a lookup for resource bundle substitution.
  • LOG4J2-415: Format log event time as UNIX time (seconds or milliseconds).
  • LOG4J2-401: Configure FileAppender buffer size.
  • LOG4J2-402: Configure RandomAccessFileAppender buffer size.

Fixed Bugs:

  • LOG4J2-500: (JMX - ObjectNames changed!) Unloading one web application unloads JMX MBeans for all web applications.
  • LOG4J2-531: Fixed bugs where rolled log files were overwritten by RollingFile appender with composite time and size based policies. Thanks to Geoff Ballinger.
  • LOG4J2-475: Changed the MongoDBConnection to add a MongoDB encoding hook instead of a decoding hook. Thanks to Matt Sicker.
  • LOG4J2-489: Fixed the JPAAppender's overuse of transactions by connecting (borrowing from pool) on new write internal or on flush.
  • LOG4J2-457: Fixed failure of JDBC and JPA appender to properly release database connections by connecting (borrowing from pool) on new write internal or on flush.
  • LOG4J2-442: Fixed problem with JDBC and JPA appender connectivity in WebSphere by connecting (borrowing from pool) on new write internal or on flush.
  • LOG4J2-438: Ensured the JDBCAppender commits transactions after a single write or a flush of multiple writes.
  • LOG4J2-407: Fixed inability to recover from lost database connection in database appenders by connecting (borrowing from pool) on new write internal or on flush.
  • LOG4J2-511: Stop AsyncLoggerConfig Disruptor thread(s), then AsyncAppender thread(s) first before stopping other appenders. Thanks to James Pretorius.
  • LOG4J2-392: Stop AsyncLoggerConfig Disruptor thread(s), then AsyncAppender thread(s) first before stopping other appenders. Thanks to ilynaf, Andre Bogus.
  • LOG4J2-345: (OSGi) logging.log4j-1.2-api doesn't export the log4j API 1.2. Dependent bundles can not be resolved. Thanks to Roland Weiglhofer, Matt Sicker.
  • LOG4J2-523: LocalizedMessage serialization is broken.
  • LOG4J2-385: Fixed issues with time-based file rollover (monthly, weekly, hourly and every minute). Thanks to Ace Funk, Porfirio Partida.
  • LOG4J2-452: Added a ServletContext attribute that, when set to "true", disables Log4j's auto-initialization in Servlet 3.0+ web applications.
  • 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-405: Configuration was being processed twice at startup.
  • LOG4J2-398: Configure properties and setup Interpolator before processing rest of configuration.
  • LOG4J2-470: hostName property was not being set until after the first configuration element.
  • LOG4J2-464: Support arrays as sub-elements of a JSON configuration.
  • LOG4J2-492: (JMX) Fixed MalformedObjectNameException if context name contains '=' or newline characters. Thanks to Shaddy Baddah, Herlani Junior.
  • LOG4J2-377: (OSGi) Fix NPE during shutdown. Thanks to Roland Weiglhofer, Matt Sicker.
  • LOG4J2-463: Fixed documentation for MyApp example application in the Automatic Configuration section Thanks to Michael Diamond, Matt Sicker.
  • LOG4J2-408: Fixed error in documentation code example in manual/eventlogging.html Thanks to Dongqing Hu, Matt Sicker.
  • LOG4J2-451: Fixed typo in documentation: system property should be log4j2.loggerContextFactory Thanks to Vinay Pothnis, Matt Sicker.
  • LOG4J2-443: Fixed issue where log4j2 LoggerContext did not show up in JMX GUI or JConsole. Thanks to Colin Froggatt, Tudor Har.
  • LOG4J2-485: Fixed issue where toString methods that perform logging could deadlock AsyncAppender.
  • LOG4J2-445: ResolverUtil cannot find packages in file URLs which include the '+' character. Thanks to Anthony Baldocchi.
  • LOG4J2-430: Use the formatted Message in RFC5424Layout for non-StructuredDataMessages. Thanks to David Gstir.
  • LOG4J2-459: Set external context when constructing the LoggerContext.
  • LOG4J2-466: Cannot load log4j2 config file if path contains plus '+' characters. Thanks to Jan Tepke.
  • LOG4J2-462: Fix LogEvent to never return null Level, fixes LevelPatternConverter.format may throw NPE. Thanks to Daisuke Baba.
  • LOG4J2-465: Fix LogEvent to never return null Level, fixes ThresholdFilter throws NPE. Thanks to Daisuke Baba.
  • LOG4J2-471: Fixed issue where toString methods that perform logging could deadlock AsyncLogger. Thanks to Anthony Baldocchi.
  • LOG4J2-478: The message and ndc fields are not JavaScript escaped in JSONLayout. Thanks to Michael Friedmann..
  • LOG4J2-455: RingBufferLogEvent should return Message timestamp for TimestampMessage messages. Thanks to Robin Zhang Tao.
  • LOG4J2-477: NPE in ClassLoaderContextSelector. Thanks to Tal Liron.
  • LOG4J2-454: TimeBasedTriggeringPolicy should use event time millis. Thanks to Robin Zhang Tao.
  • LOG4J2-472: BaseConfiguration class does not properly implement Configuration interface. Thanks to Tal Liron.
  • LOG4J2-447: XMLLayout does not include marker name. Thanks to Jeff Hudren, Mark Paluch, Scott Deboy.
  • LOG4J2-323: Resolved memory leak by releasing reference to ThreadLocal when AsyncLogger is stopped.
  • LOG4J2-425: Resolved memory leak by populating AsyncLoggerConfigHelper ring buffer via EventTranslatorTwoArg, eliminating the need for a ThreadLocal.
  • LOG4J2-417: Fix Event Level / LoggerConfig Level table at the architecture documentation page.
  • LOG4J2-404: @EnterpriseNumber" was missing in the ID of structured data when RFC5424Layout is used Thanks to Kamal Bahadur.
  • LOG4J2-379: Fixed issue that prevented Log4J from working in Google App Engine.

Changes:

  • Renamed the org.apache.logging.log4j.core.appender.db.nosql.mongo package to org.apache.logging.log4j.core.appender.db.nosql.mongodb.
  • Renamed the org.apache.logging.log4j.core.appender.db.nosql.couch package to org.apache.logging.log4j.core.appender.db.nosql.couchdb.
  • LOG4J2-507: Space Level numbers by 100 instead of 1.
  • LOG4J2-41: Add support for custom logging levels. Thanks to Nick Williams.
  • LOG4J2-490: Update EasyMock to version 3.2. Thanks to Matt Sicker.
  • LOG4J2-453: Update Flume Appender to use Flume 1.4.0.
  • LOG4J2-528: Rename package org.apache.logging.log4j.core.appender.rolling.helper to org.apache.logging.log4j.core.appender.rolling.action.
  • 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:

http://logging.apache.org/log4j/2.x/

Sunday Oct 20, 2013

Apache Log4j Extras 1.2.17 released

The Apache Log4j 1 team is pleased to announce the release of Apache Log4j Extras 1.2.17.

Apache Extras™ for Apache log4j™ is a jar file full of additional functionality for log4j 1.2.x.

This release is a maintenance release.

Changes:

  • Version naming changed to match the required log4j version.
  • RollingFileAppender with TimeBasedRolling policy doesn't create parent-path if FileNamePattern contains date pattern as directory (thanks to Daniel Stankiewicz) Fixes 53536.
  • DBAppender has a compile error (thanks to Antonio Petrelli) Fixes 53645.
  • Prefixed FormattingInfo and PatternParser with Extras to avoid classloading conflict
  • Fixed product naming
  • Removed duplicated classes (thanks to Jess Holle for spotting it)
  • Removed ant build
  • Made tests writing to target folder
  • Merged all companions into the extras companion
  • Switched Parent to Apache parent Fixes 47595.
  • Upgraded to Apache Maven 3

Apache Log4j Extras 1.2.17 required Java > 1.4.2 and Log4j 1.2.17.

For more information please visit the product website: http://logging.apache.org/log4j/extras

Saturday Sep 28, 2013

Remko Popma joined the Apache Logging PMC

Remko Popma, know for his contributions in log4j 2 joined the Apache Logging PMC. Thank you a lot for all your hard work so far and all the best for your new role!

Saturday Sep 21, 2013

Apache Log4j 2.0-beta9 released

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.

Bug fixes and enhancements

New features:

  • LOG4J2-399: Allow the default file rollover strategy to define the compression level.
  • LOG4J2-338: Add TLSAppender. Also added missing license headers to several files. Thanks to Tibor Benke.
  • LOG4J2-253: Added FAQ page to the site.
  • LOG4J2-362: Add a diagram to the site (FAQ page) that explains when to use which jar.
  • LOG4J2-374: Add more options to PatternLayout to display more detailed information about a Throwable. Thanks to Tibor Benke.
  • LOG4J2-383: [Pattern Layout] Customize level names by length.
  • LOG4J2-384: [Pattern Layout] Customize level names to lower-case.
  • LOG4J2-364: Add WebLookup to retrieve information from the ServletContext. Thanks to David Nault.
  • LOG4J2-360: Allow Plugins to have aliases.
  • LOG4J2-356: Create a JSON Layout.
  • LOG4J2-341: Enable XInclude for XML configurations.
  • LOG4J2-313: Add JNDILookup plugin. Thanks to Woonsan Ko.
  • LOG4J2-305: Ease porting from 1.x Logger.getRootLogger(): add LogManager.getRootLogger().

Fixed Bugs:

  • LOG4J2-226: Fix table of contents generation in pdf.
  • LOG4J2-395: Allow classpath scheme when specifying configuration file location as a system property. Thanks to Abhinav Shah.
  • LOG4J2-393: Initialize PluginManager once during configuration. Move advertisement setup into BaseConfiguration.
  • LOG4J2-391: FlumePersistentManager now handles LockConflictExceptions in Berkeley Db. Thanks to Kamal Bahadur.
  • LOG4J2-380: Use rollover date when substituting ${date} in the filePattern.
  • LOG4J2-322: Centralized reflective use of Reflection#getCallerClass and properly handled its instability in various versions of Java.
  • LOG4J2-293: Reset the Configuration if the ClassLoaderContextSelector creates a LoggerContext without a configuration location and then is later provided one.
  • LOG4J2-293: Changed the ConfigurationFactory to recognize and properly use the classpath: URI scheme in addition to the classloader: URI scheme. Thanks to Abhinav Shah.
  • 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. Thanks to Abhinav Shah.
  • LOG4J2-310: Fixed issue where SMTPAppender did not send mails with error or fatal level without prior info event. Thanks to Olivier Lemasle.
  • LOG4J2-368: Add PatternLayout constructor to Log4j 1.2 bridge for Velocity.
  • LOG4J2-333: Match artifact ids with Maven module names. Thanks to Hervé Boutemy.
  • LOG4J2-367: JMS appenders send two messages for one append. Thanks to David Parry.
  • LOG4J2-319: Double stack trace logging when using %throwable in %style and %highlight.
  • LOG4J2-358: NoSQLAppender using MongoDB provider ignores username and password attributes
  • LOG4J2-343: Removed unnecessary generics from Appender interface and implementing classes. Thanks to Henning Schmiedehausen.
  • LOG4J2-351: [OSGi] wrong Fragment-Host in manifest files. Thanks to Roland Weiglhofer.
  • LOG4J2-336: AsyncLogger errors after multiple calls to LoggerContext.reconfigure(). Thanks to Andre Bogus.
  • LOG4J2-347: Give the AsyncAppender thread a more descriptive name for easier debugging/profiling. Thanks to David Phillips.
  • LOG4J2-332: Modified documentation to refer to SLF4J Binding instead of SLF4J Bridge. Thanks to Hervé Boutemy.
  • LOG4J2-342: Ignore xml:base attributes.
  • LOG4J2-309: Insure jars and distributions only have a single License and Notice file.
  • LOG4J2-320: JPAAppender stops logging because META-INF/log4j-provider.properties is left open.
  • LOG4J2-335: FlumePersistentManager's writer thread had high CPU usage.
  • LOG4J2-331: Removed erroneous check for affected MongoDB records, which always returns zero on inserts.
  • LOG4J2-330: Added a BSON Transformer so that MongoDB can persist Log4j events.
  • LOG4J2-329: StatusLogger now only creates StatusData objects if they are the appropriate logging level.
  • LOG4J2-328: FlumePersistentManager was calling Berkeley DB's count method too frequently.
  • LOG4J2-280: Additional fix to make AsyncAppender threads daemon threads and improve their thread name.
  • LOG4J2-165: The slf4j-ext jar is now an optional dependency of the SLF4J bridge.
  • LOG4J2-166: RoutingAppender's default Route can now be an appender reference.
  • LOG4J2-299: Add getThrowable method to ThrowableProxy.
  • LOG4J2-216: ThrowableProxy no longer extends Throwable.
  • LOG4J2-311: Synchronized flush() and close() methods in the XxxFileManager and OutputStreamManager classes.
  • LOG4J2-304: Fixed Async Loggers memory leak.
  • LOG4J2-291: Fixed JDBC, JPA, and NoSQL appenders so that the failover appender properly fails over on error.
  • LOG4J2-397: Logger.info(Message) Javadoc is incorrect. Thanks to Yonatan Graber.

Changes:

  • 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.
  • LOG4J2-318: Allow shutdown hook to be disabled in the configuration.
  • LOG4J2-312: XML layout improvements (compact vs. pretty, namespace, namespace prefix, root element).
  • LOG4J2-388: Update Java Mail dependency to 1.5.0 from 1.4.7.
  • LOG4J2-325: Update JDBC tests to use H2 database 1.3.173 from 1.3.172.
  • LOG4J2-366: Update commons-logging to 1.1.3 from 1.1.1.
  • LOG4J2-390: Update HSQLDB dependency to 2.3.0 from 2.2.9.
  • LOG4J2-308: Clarified which library versions were used in Async Loggers performance test.
  • LOG4J2-307: Updated Async Loggers' LMAX Disruptor library from 3.0.1 to 3.2.0.
  • LOG4J2-306: Update JSON Jackson library to 2.2.2 from 2.2.1.
  • LOG4J2-387: Update Jackson dependency to 1.9.13 from 1.9.11.
  • 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:

http://logging.apache.org/log4j/2.x/

Friday Sep 13, 2013

Apache log4net 1.2.12 released

The Apache log4net team is pleased to announce the release of Apache
log4net 1.2.12. The release is available for download at

http://logging.apache.org/log4net/download_log4net.cgi

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

http://logging.apache.org/log4net/release/release-notes.html

for a full list of changes.

The binary distributions no longer contain assemblies built for the
Compact Framework 2.0 - you can build those yourself using the source
distribution.

Please verify signatures using the KEYS file available at the above
location when downloading the release.

For complete information on log4net, including instructions on how to
submit bug reports, patches, or suggestions for improvement, see the
Apache log4net website:

http://logging.apache.org/log4net/

Stefan Bodewig on behalf of the log4net community

Wednesday Jul 24, 2013

Apache Log4j 2.0 is looking for a new logo!

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.

HOW TO PARTICIPATE

Attach your entries to the Jira: https://issues.apache.org/jira/browse/LOG4J2-316

You can submit as many entries as you like.

You must license your Logo under the Apache License 2.0.

The contest will last one month from the date of the announcement.

If your Logo is accepted, you must sign an ICLA: http://www.apache.org/licenses/icla.txt

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.

Please ask questions on the dev mailing list.

The Log4j team

Sunday Jul 14, 2013

Apache Log4j 2.0-beta8 released

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

Fixed Bugs

  • LOG4J2-302: Added toString methods to ThreadContextStack/Map implementation classes.
  • LOG4J2-300: WriterThread was ending when no agents are available which caused an OutOfMemoryError.
  • LOG4J2-278: Filter calls from Avro or Flume to be ignored by the FlumeAppender.
  • LOG4J2-279: FlumePersistentManager now calls Berkeley DB from threads to avoid encountering interrupts in the application.
  • LOG4J2-296: Wasted work in FlumePersistentManager.createManager.
  • LOG4J2-297: Wasted work in TestConfigurator.testEnvironment.
  • LOG4J2-298: Wasted work in StyleConverterTest.setupClass.
  • LOG4J2-280: AsyncLogger threads are now daemon threads and won't prevent the JVM from shutting down anymore.
  • LOG4J2-295: Fast(Rolling)FileAppender now correctly handles messages exceeding the buffer size.
  • OG4J2-271: FastRollingFileAppender with TimeBasedTriggeringPolicy now works correctly if append=false.
  • LOG4J2-267: FastRollingFileAppender with TimeBasedTriggeringPolicy now works correctly if append=false.
  • LOG4J2-292: Fast(Rolling)FileAppender now correctly appends to (does not overwrite) existing file.
  • LOG4J2-289: Upgrade javadoc plugin to 2.9.1 to fix javadoc security issue.
  • LOG4J2-139: Fix NullPointerException (regression due to fix for LOG4J2-228)
  • LOG4J2-275: FlumeAvroManager fails to notify client of failing event if Flume RPCClient cannot be created.

Changes

  • LOG4J2-270: Improved logging initialization in Servlet containers, especially Servlet 3.0 and newer where Log4j now initializes and deinitializes automatically with no deployment descriptor configuration.
  • LOG4J2-301: Add printf methods to Logger API.
  • LOG4J2-282: Allow the default status level to be specified as a system property.
  • LOG4J2-294: LogManager.getLogger can now be called without a logger name or with a null logger name.
  • LOG4J2-288: Update JUnit to 4.11 from 4.7.
  • LOG4J2-286: Update test H2 JDBC driver to 1.172 from 1.171.
  • LOG4J2-285: Update Jansi jar to 1.11 from 1.9.
  • LOG4J2-284: Update Log4j 1 dependency to 1.2.17 from 1.2.16.
  • LOG4J2-283: Remove dependency on Apache ORO jar.
  • LOG4J2-277: Wasted work in RollingAppenderSizeTest.testAppender() and others.
  • LOG4J2-168: Include arbitrary message fields in RFC-5424 structured data. Thanks to Scott Severtson.
  • LOG4J2-274: Wasted work in UUIDUtil initialization.
  • LOG4J2-273: Wasted work in XMLLayout.toSerializable().

Apache Log4j 2.0-beta8 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/

Monday Jun 03, 2013

Dominik Psenner to join the Apache Logging PMC

Dominik Psenner, active mostly in log4net, has been elected into the Apache Logging PMC. All the best for your new role and thank you for your valuable contributions so far.

Monday May 13, 2013

Apache Log4j 2.0-beta6 released

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

Fixed Bugs:

  • LOG4J2-231: Logger.getParent() was not returning the correct Logger.
  • LOG4J2-201: Renamed Plugin annotation attribute from "type" to "category".
  • LOG4J2-219: Fix: install default root logger if not configured (this is unchanged), but make sure to include configured named loggers. Clarified documentation. Thanks to Peter DePasquale.
  • LOG4J2-159: Use OSGi version format in Fragment-Host
  • LOG4J2-234: RegexFilter threw a NullPointerException when used as a context-wide filter.
  • LOG4J2-192: Add support for interpolating Environment variables when processing the configuration.
  • LOG4J2-235: Removed dependency on tools jar from core module, made jconsole dependency optional. Thanks to Sebastian Oerding.
  • LOG4J2-233: Fixed link to log4j-user mailing list.
  • LOG4J2-222: Disruptor will now shutdown during Tomcat shutdown. Thanks to Steven Yang.
  • LOG4J2-224: The FlumeAppender failed to start if the Flume RPCClient could not connect to any Flume agents.
  • LOG4J2-223: Fix LoggerContext start and stop to eliminate IllegalStateException and NoClassDefFound errors.
  • LOG4J2-221: Remove hundreds of compiler warnings. Thanks to Nick Williams.
  • LOG4J2-215: Various small documentation fixes.
  • LOG4J2-217: Ensure PluginManager streams are always closed. Thanks to Fabien Sanglard.

Changes:

  • LOG4J2-237: Moved JMX Client GUI classes into separate jmx-gui submodule.
  • LOG4J2-230: Improved error reporting when misconfigured. Thanks to Wojciech Zaręba.
  • Renamed AsynchAppender to AsyncAppender. Plugin name became Async (was Asynch).
  • Removed CheckStyle false positives for NewlineAtEndOfFile and whitespace following '*' at end of line in javadoc.
  • Moved Clock interface to package org.apache.logging.log4j.core.helpers.
  • LOG4J2-225: Documentation updates to clarify use and impact of location in pattern layouts.

Apache Log4j 2.0-beta5 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/

Saturday May 11, 2013

Welcome Nick Williams

The Apache log4j team would like to welcome Nick Williams as a new committer! Welcome Nick!

Thursday Apr 25, 2013

Apache Log4j 2.0-beta5 released

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

New features:

  • LOG4J2-207: Add JMX support. Thanks to Remko Popma.
  • LOG4J2-187: Add tag library. Thanks to Nick Williams.
  • LOG4J2-164: Add methods is/setEndOfBatch to LogEvent. Thanks to Remko Popma.
  • LOG4J2-163: Add support for asynchronous loggers. Thanks to Remko Popma.
  • LOG4J2-179: Add Logger interface APIs to log at given levels.
  • Added FlumePersistentManager which writes to BerkeleyDB and then writes to Flume asynchronously.
  • LOG4J2-155: Expose file appender configuration details via an advertisement mechanism.

Fixed Bugs:

  • LOG4J2-205: Fix deadlock in SocketAppender. Added option to not wait for socket reconnect.
  • LOG4J2-211: Removing extra spaces in entry and exit method output. Thanks to Nick Williams.
  • LOG4J2-212: Loggers without a "." had no parent logger.
  • LOG4J2-212: Call LoggerContext.stop when the application is shutdown.
  • LOG4J2-210: MapMessage was not enclosing key value in quotes when generating XML. Thanks to Arkin Yetis.
  • LOG4J2-198: FlumeAvroManager now uses Flume RPCClient.
  • LOG4J2-196: FlumeAvroManager now uses Flume RPCClient.
  • LOG4J2-207: Use the Maven group ID org.apache.logging.log4j for all artifacts.
  • LOG4J2-195: Unit tests now create files in the target directory. Thanks to Remko Popma.
  • LOG4J2-193: RollingFastFileAppender (in log4j-async) did not roll over. Thanks to Remko Popma.
  • LOG4J2-199: Highlight subprojects in sub-navigation. Thanks to Remko Popma.
  • LOG4J2-200: LoggerContext method renamed to removeFilter from removeFiler. Thanks to Remko Popma.
  • LOG4J2-194: ThrowableFormatOptionsTest failed on Windows due to CR/LF issue. Thanks to Remko Popma.
  • LOG4J2-190: BaseConfiguration addLoggerAppender saved appender using the Logger name. Thanks to Werner.
  • LOG4J2-189: The blocking parameter did not work properly on AsynchAppender. Thanks to Werner.
  • LOG4J2-188: appender-refs on AsynchAppender didn't support the level and filter elements. Thanks to Werner.
  • LOG4J2-176: Avoid IllegalArgumentException in AsynchAppender. Thanks to Remko Popma.
  • LOG4J2-181: OutputStreamManager now adds the layout header whenever the OutputStream is set.
  • LOG4J2-177: Fix NullPointerException in DatagramOutputStream when flush is called from multiple threads. Thanks to Remko Popma.
  • LOG4J2-175: Plugin cache should be reset when addPackages is called.
  • LOG4J2-159: Add Fragment-Host to MANIFEST.MF for log4j2-core. Thanks to Jan Winter.
  • LOG4J2-167: Configurator throws a ClassCastException if LogManager returns a SimpleLoggerContext.
  • LOG4J2-169: ConfigurationFactory was adding factories on every call.
  • LOG4J2-161: Modify ClassLoaderContextSelector to use the first ClassLoader in the child parent hierarchy that has a Context with a configuration to allow JSPs to use the WebApp's context and configuration.

Changes:

  • LOG4J2-214: Async documentation update. Thanks to Remko Popma.
  • LOG4J2-208: Move async subproject into core. Thanks to Remko Popma.
  • LOG4J2-160: Move Throwable pattern converter options processing to ThrowableFormatOptions class. Thanks to Joanne Polsky.
  • LOG4J2-157: Allowed Loggers access to the properties in the LoggerConfig. Thanks to Remko Popma.
  • LOG4J2-153: Added ability to include or exclude location information. Thanks to Remko Popma.
  • LOG4J2-151: Allow Logger and LoggerContext to be subclassed. Thanks to Remko Popma.

Apache Log4j 2.0-beta5 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/

Tuesday Apr 23, 2013

Welcome Remko Popma

The Apache log4j team would like to welcome Remko Popma as a new committer! Welcome Remko!

Monday Feb 04, 2013

Apache log4j 2.0-beta4 released

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

New features:

  • Added Log4j 2 to SLF4J adapter.
  • LOG4J2-131: Add SMTPAppender. Thanks to Scott Severtson.
  • Added hostName and contextName to property map.
  • Add MessageFormatMessage and FormattedMessage.
  • LOG4J2-134: Use %red, %white, %blue, and so on in the console appender.
  • LOG4J2-133: Allow custom message creation via a message factory.
  • Added Flume Appender samples.

Fixed Bugs:

  • LOG4J2-156: LocalizedMessageTest fails on linux system. Thanks to Andreas Born.
  • LOG4J2-152: RollingFileAppender's FileRenameAction was throwing a NullPointerException if no directory was specified on the target file name. Thanks to Remko Popma.
  • LOG4J2-150: Convert all System.getProperty calls to use PropertiesUtil to suppress SecurityExceptions.
  • LOG4J2-147: ThreadContextMapFilter was matching on the key instead of the value of the key. Thanks to William Burns.
  • Allow FlumeAvroManager to initialize even if it cannot connect to an agent.
  • LOG4J2-149: SMTPAppender will only cache filtered events. Thanks to Scott Severtson.
  • LOG4J2-145: Add missing serial version IDs.
  • LOG4J2-144: NullPointerException in RFC5424Layout.
  • LOG4J2-143: MessagePatternConverter now returns "null" if the log message is null.
  • LOG4J2-142: Serialized LogEvents were not reset in the output stream causing them to deserialize incorrectly.
  • LOG4J2-139: Fix null pointer exception in SocketAppender if no protocol is specified. The protocol will default to TCP for the SocketAppender and UDP for the SyslogAppender.
  • LOG4J2-140: Typo in documentation of SocketAppender. Thanks to Joern Huxhorn.
  • LOG4J2-137: Fix hang in Dumbster SMTP test server.
  • LOG4J2-130: PatternLayout should format throwables without requiring a converter.
  • LOG4J2-135: BaseConfiguration does not close the first appender. Thanks to Ingo Feltes.
  • LOG4J2-132: AbstractLogger.catching(Throwable) checks for DEBUG level but logs at ERROR level.
  • LOG4J2-129: RoutingAppender was only creating a single appender for the default Route.
  • LOG4J2-126: Allow JMS appenders to recover if the queue or topic is unavailable.
  • LOG4J2-127: AbstractLogger methods were not passing Markers to the isEnabled methods.
  • LOG4J2-125: JMSQueue and JMSTopic Appenders did not allow name to be specified.
  • LOG4J2-111: Enhanced javadoc copyright statement.
  • LOG4J2-120: TCPSocketManager would fail if the initial connection could not be established.
  • LOG4J2-119: A broken socket connection would cause the TCPSocketManager to continuously reconnect.
  • LOG4J2-123: The example for ThreadContextMapFilter was incorrect. Thanks to Olivier Lamy.
  • LOG4J2-116: File renaming was using the wrong date value. Enhanced DefaultRolloverStrategy to store newest files in highest index as well as lowest.
  • LOG4J2-115: ThreadContext Map elements with null values are now ignored when constructing a Flume event and in the RFC5424 Layout.
  • LOG4J2-113: StructuredDataFilter createFilter was annotated with PluginAttr instead of PluginElement for the KeyValuePairs.
  • LOG4J2-114: StructuredDataMessage was validating the length of the values in the event Map instead of the lengths of the keys. Thanks to Arkin Yetis.

Changes:

  • LOG4J2-136: Allow newlines to be escaped in Syslog and RFC5424 layouts. Allow Throwables to be included in the output from RFC5424Layout. Thanks to Scott Severtson.
  • LOG4J2-128: Add follow attribute to Console Appender.
  • LOG4J2-122: Add unit test to verify exceptions are thrown when the socket connection fails.
  • LOG4J2-110: Renamed log4j12-api to log4j-1.2-api.

Apache Log4j 2.0-beta4 requires a minimum of Java 5 to build and run. Basic compatibility with Log4j 1.x is provided through the log4j12-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/

Saturday Dec 08, 2012

Apache log4php moved to git

I'm pleased to announce that Apache log4php project has finished it's move from Subversion to Git version control system.

Links to the available repositories are as follows:

The official repository (and web interface), writable for developers:
https://git-wip-us.apache.org/repos/asf/logging-log4php.git

Official read-only mirror:
git://git.apache.org/logging-log4php.git

Github read-only mirror:
https://github.com/apache/logging-log4php

The exact workflow is still under discussion, however it will probably be based heavily on the git-flow.

We believe this will allow us to function better as an open source project, and accept user contributions more easily.

Calendar

Search

Hot Blogs (today's hits)

Tag Cloud

Categories

Feeds

Links

Navigation