2.0-beta1 (2012-09-18)



  • Added AsynchAppender. (for by Ralph Goers)


  • Update the versions of SLF4J and Logback. (for by Ralph Goers)


  • Created web module to allow web applications to include the Log4j context listener in WEB-INF/lib even if Log4j is in the container’s class path. Allow locating the LoggerContext to include the ClassLoader. Updated the Loader utility to always choose the child ClassLoader. Verified in Jboss 5 and Tomcat. (for by Ralph Goers)

  • FileRenameAction did not create the parent directories of the archive files causing the rollover to fail. (for LOG4J2-71 by Ralph Goers)

  • NullPointerException in RollingFileManager when filePattern does not cause the file to be compressed. (for LOG4J2-72 by Ralph Goers)

  • Logger.error(Marker, Message, Throwable) was internally using Level.TRACE. (for LOG4J2-74 by Ralph Goers)

  • Enhanced Log4jContextListener to accept a configuration file location. Modified FileConfigurationMonitor to monitor files configured that way. Fixed other reconfiguration related bugs. Tested in JBoss and Tomcat. (for LOG4J2-75 by Ralph Goers)

  • RewriteAppender was calling the stop method of the referenced appender causing the referenced appender’s manager to have its use count decremented too many times. (for LOG4J2-76 by Ralph Goers)

  • RoutingAppender was calling the stop method for each of its referenced Appenders and was calling the stop method of the default Appender a second time. It will now only call the stop method of Appenders it creates. (for LOG4J2-77 by Ralph Goers)

  • LogFactoryImpl.setAttribute in the Commons Logging bridge got a NullPointerException when passed a null value. It will now remove the attribute. (for LOG4J2-78 by Ralph Goers)

  • Allow Log4j 2 to be used as the implementation with SLF4J and SLF4J’s jcl-over-slf4j by adding filtering to the log method in SLF4JLogger. (for LOG4J2-80 by Ralph Goers, Oliver Lamy)

  • PatternLayout was not honoring format modifiers. (for LOG4J2-81 by Ralph Goers)

  • MarkerFilter called MarkerManager.getMarker causing the Marker to be created during the processing of the configuration. This prevents the application from creating the Marker with any parents. MarkerWrapper in SLF4J-impl was getting a ClassCastException in instanceOf because the Marker isn’t a MarkerWrapper. (for LOG4J2-82 by Ralph Goers)