2.0-beta3 (2012-11-11)



  • Added PropertiesRewritePolicy and ability to define properties on a Logger. (for LOG4J2-28 by Ralph Goers)

  • Added ability to configure from an InputSource. (for LOG4J2-55 by Ralph Goers)


  • Created combined jar to combine API and Core contents for users who only want the Log4j implementation. (for by Ralph Goers)

  • Add ability to customize the names of the Levels in the LevelPatternConverter. (for LOG4J2-105 by Ralph Goers)

  • Added font and fontSize parameters to HTMLLayout. Replace newlines in message with br tag. (for LOG4J2-29 by Ralph Goers)

  • Add ThreadContext.push(String format, Object…​ args) (for LOG4J2-85 by Ralph Goers)

  • Build pdf of user’s guide. (for LOG4J2-87 by Ralph Goers)


  • Avoid NPE when duplicate LoggerContextFactorys are present. Allow factories to specify a weight to allow real implementations to outrank test implementations. Provide a simple default LoggerContextFactory. (for by Ralph Goers)

  • A NullPointerException would occur if no format value was passed to the SyslogAppender. (for LOG4J2-101 by Ralph Goers, Emanuele Colombo)

  • The Facility value was being improperly calculated. (for LOG4J2-102 by Ralph Goers, Emanuele Colombo)

  • The LogEvent was wrapping a ThrowableProxy with another ThrowableProxy when deserializing. (for LOG4J2-103 by Ralph Goers, Das Archive)

  • Convert LogManager binding to use "regular" java properties instead of XML properties to work around a bug in Oracle’s xmlparserv2 jar. (for LOG4J2-104 by Ralph Goers)

  • PatternParser was not properly handling adjacent nested options (for LOG4J2-107 by Ralph Goers)

  • Fix NullPointerException in ClassLoaderContextSelector when no class is returned from the SecurityManager. (for LOG4J2-108 by Ralph Goers)

  • Interpolator was not stripping Lookup key separator when trying to locate the default value for a variable. (for LOG4J2-94 by Ralph Goers, Denis Treskunov)

  • Add support for loading plugins inside the OSGi bundle. (for LOG4J2-95 by Ralph Goers)

  • Added several missing classes and methods for Log4j 1.x compatibility. (for LOG4J2-97 by Ralph Goers)

  • MapRewritePolicy had an extra call to putAll that caused updates to behave like adds. (for LOG4J2-99 by Ralph Goers, Das Archive)

  • Log4j 1.2 Category.forcedLog was wrapping the message with an ObjectMessage even if the parameter was an ObjectMessage. (for by Ralph Goers)