o Added Log4j 2 to SLF4J adapter.
o LOG4J2-131: Add SMTPAppender. Thanks to Scott Severtson.
o Added hostName and contextName to property map.
o Add MessageFormatMessage and FormattedMessage.
o LOG4J2-134: Use %red, %white, %blue, and so on in the console appender.
o LOG4J2-133: Allow custom message creation via a message factory.
o Added Flume Appender samples.
o LOG4J2-156: LocalizedMessageTest fails on linux system. Thanks to Andreas Born.
o LOG4J2-152: RollingFileAppender's FileRenameAction was throwing a NullPointerException if no directory was specified
on the target file name. Thanks to Remko Popma.
o LOG4J2-150: Convert all System.getProperty calls to use PropertiesUtil to suppress SecurityExceptions.
o LOG4J2-147: ThreadContextMapFilter was matching on the key instead of the value of the key. Thanks to William Burns.
o Allow FlumeAvroManager to initialize even if it cannot connect to an agent.
o LOG4J2-149: SMTPAppender will only cache filtered events. Thanks to Scott Severtson.
o LOG4J2-145: Add missing serial version IDs.
o LOG4J2-144: NullPointerException in RFC5424Layout.
o LOG4J2-143: MessagePatternConverter now returns "null" if the log message is null.
o LOG4J2-142: Serialized LogEvents were not reset in the output stream causing them to deserialize incorrectly.
o 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.
o LOG4J2-140: Typo in documentation of SocketAppender. Thanks to Joern Huxhorn.
o LOG4J2-137: Fix hang in Dumbster SMTP test server.
o LOG4J2-130: PatternLayout should format throwables without requiring a converter.
o LOG4J2-135: BaseConfiguration does not close the first appender. Thanks to Ingo Feltes.
o LOG4J2-132: AbstractLogger.catching(Throwable) checks for DEBUG level but logs at ERROR level.
o LOG4J2-129: RoutingAppender was only creating a single appender for the default Route.
o LOG4J2-126: Allow JMS appenders to recover if the queue or topic is unavailable.
o LOG4J2-127: AbstractLogger methods were not passing Markers to the isEnabled methods.
o LOG4J2-125: JMSQueue and JMSTopic Appenders did not allow name to be specified.
o LOG4J2-111: Enhanced javadoc copyright statement.
o LOG4J2-120: TCPSocketManager would fail if the initial connection could not be established.
o LOG4J2-119: A broken socket connection would cause the TCPSocketManager to continuously reconnect.
o LOG4J2-123: The example for ThreadContextMapFilter was incorrect. Thanks to Olivier Lamy.
o LOG4J2-116: File renaming was using the wrong date value. Enhanced DefaultRolloverStrategy to store newest files in
highest index as well as lowest.
o LOG4J2-115: ThreadContext Map elements with null values are now ignored when constructing a Flume event and in the
o LOG4J2-113: StructuredDataFilter createFilter was annotated with PluginAttr instead of PluginElement for the
o 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.
o 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.
o LOG4J2-128: Add follow attribute to Console Appender.
o LOG4J2-122: Add unit test to verify exceptions are thrown when the socket connection fails.
o LOG4J2-110: Renamed log4j12-api to log4j-1.2-api.