2.0-beta4 (2013-01-28)



  • Add MessageFormatMessage and FormattedMessage. (for by Ralph Goers)

  • Added Flume Appender samples. (for by Ralph Goers)

  • Added Log4j 2 to SLF4J adapter. (for by Ralph Goers)

  • Added hostName and contextName to property map. (for by Ralph Goers)

  • Add SMTPAppender. (for LOG4J2-131 by Ralph Goers, Scott Severtson)

  • Allow custom message creation via a message factory. (for LOG4J2-133 by Gary Gregory)

  • Use %red, %white, %blue, and so on in the console appender. (for LOG4J2-134 by Gary Gregory)


  • Renamed log4j12-api to log4j-1.2-api. (for LOG4J2-110 by Ralph Goers)

  • Add unit test to verify exceptions are thrown when the socket connection fails. (for LOG4J2-122 by Ralph Goers)

  • Add follow attribute to Console Appender. (for LOG4J2-128 by Ralph Goers)

  • Allow newlines to be escaped in Syslog and RFC5424 layouts. Allow Throwables to be included in the output from RFC5424Layout. (for LOG4J2-136 by Ralph Goers, Scott Severtson)


  • Allow FlumeAvroManager to initialize even if it cannot connect to an agent. (for by Ralph Goers)

  • Enhanced javadoc copyright statement. (for LOG4J2-111 by Ralph Goers)

  • StructuredDataFilter createFilter was annotated with PluginAttr instead of PluginElement for the KeyValuePairs. (for LOG4J2-113 by Ralph Goers)

  • StructuredDataMessage was validating the length of the values in the event Map instead of the lengths of the keys. (for LOG4J2-114 by Ralph Goers, Arkin Yetis)

  • ThreadContext Map elements with null values are now ignored when constructing a Flume event and in the RFC5424 Layout. (for LOG4J2-115 by Ralph Goers)

  • File renaming was using the wrong date value. Enhanced DefaultRolloverStrategy to store newest files in highest index as well as lowest. (for LOG4J2-116 by Ralph Goers)

  • A broken socket connection would cause the TCPSocketManager to continuously reconnect. (for LOG4J2-119 by Ralph Goers)

  • TCPSocketManager would fail if the initial connection could not be established. (for LOG4J2-120 by Ralph Goers)

  • The example for ThreadContextMapFilter was incorrect. (for LOG4J2-123 by Ralph Goers, Olivier Lamy)

  • JMSQueue and JMSTopic Appenders did not allow name to be specified. (for LOG4J2-125 by Ralph Goers)

  • Allow JMS appenders to recover if the queue or topic is unavailable. (for LOG4J2-126 by Ralph Goers)

  • AbstractLogger methods were not passing Markers to the isEnabled methods. (for LOG4J2-127 by Ralph Goers)

  • RoutingAppender was only creating a single appender for the default Route. (for LOG4J2-129 by Ralph Goers)

  • PatternLayout should format throwables without requiring a converter. (for LOG4J2-130 by Ralph Goers)

  • AbstractLogger.catching(Throwable) checks for DEBUG level but logs at ERROR level. (for LOG4J2-132 by Gary Gregory)

  • BaseConfiguration does not close the first appender. (for LOG4J2-135 by Gary Gregory, Ingo Feltes)

  • Fix hang in Dumbster SMTP test server. (for LOG4J2-137 by Ralph Goers)

  • 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. (for LOG4J2-139 by Ralph Goers)

  • Typo in documentation of SocketAppender. (for LOG4J2-140 by Gary Gregory, Joern Huxhorn)

  • Serialized LogEvents were not reset in the output stream causing them to deserialize incorrectly. (for LOG4J2-142 by Ralph Goers)

  • MessagePatternConverter now returns "null" if the log message is null. (for LOG4J2-143 by Ralph Goers)

  • NullPointerException in RFC5424Layout. (for LOG4J2-144 by Gary Gregory)

  • Add missing serial version IDs. (for LOG4J2-145 by Gary Gregory)

  • ThreadContextMapFilter was matching on the key instead of the value of the key. (for LOG4J2-147 by Ralph Goers, William Burns)

  • SMTPAppender will only cache filtered events. (for LOG4J2-149 by Ralph Goers, Scott Severtson)

  • Convert all System.getProperty calls to use PropertiesUtil to suppress SecurityExceptions. (for LOG4J2-150 by Ralph Goers)

  • RollingFileAppender’s FileRenameAction was throwing a NullPointerException if no directory was specified on the target file name. (for LOG4J2-152 by Ralph Goers, Remko Popma)

  • LocalizedMessageTest fails on linux system. (for LOG4J2-156 by Gary Gregory, Andreas Born)