Nice! G
On Sat, Jan 28, 2017 at 11:35 AM, Matt Sicker <mattsic...@apache.org> wrote: > Looks like this lost itself outside the list. Anyways, I've updated the > template to generate markdown which makes a nice compromise between HTML > and plain text. The output on GitHub is copyable into an email, for > instance. > > On 27 January 2017 at 19:33, Matt Sicker <mattsic...@apache.org> wrote: > >> It's just a velocity template: >> >> https://github.com/apache/logging-log4j2/blob/master/src/ >> changes/announcement.vm >> >> Shouldn't be too hard to adapt to HTML. >> >> On 27 January 2017 at 16:53, Gary Gregory <ggreg...@rocketsoftware.com> >> wrote: >> >>> We need a gadget that generates this in HTML. That would make the blog >>> and emails like this easier to digest. I wonder if there is a maven >>> thingy... >>> >>> Gary >>> >>> ------------------------------ >>> *From:* Matt Sicker <mattsic...@apache.org> >>> *Sent:* Friday, January 27, 2017 8:19:48 AM >>> *To:* annou...@apache.org >>> *Subject:* [ANN] Log4j 2.8 released >>> >>> >>> The Apache Log4j 2 team is pleased to announce the Log4j 2.8 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 other modern features such as support for Markers, lambda expressions >>> for lazy logging, >>> property substitution using Lookups, multiple patterns on a PatternLayout >>> and asynchronous >>> Loggers. Another notable Log4j 2 feature is the ability to be >>> "garbage-free" (avoid allocating >>> temporary objects) while logging. In addition, Log4j 2 will not lose events >>> while reconfiguring. >>> >>> This release contains several bugfixes and new features. The new features >>> include the ability >>> to have the RollingFileAppender log directly to the archive files. More >>> details on the new features and >>> fixes are itemized below. >>> >>> Note that subsequent to the 2.6 release a minor source incompatibility was >>> found due to the >>> addition of new methods to the Logger interface. If you have code that does: >>> >>> logger.error(null, “This is the log message”, throwable); >>> >>> or similar with any log level you will get a compiler error saying the >>> reference is ambiguous. >>> To correct this either do: >>> >>> logger.error(“This is the log message”, throwable); >>> >>> or >>> >>> logger.error((Marker) null, “This is the log message”, throwable); >>> >>> The Log4j 2.8 API, as well as many core components, maintains binary >>> compatibility with previous releases. >>> >>> GA Release 2.8 >>> >>> Changes in this version include: >>> >>> New features: >>> o LOG4J2-1032: Make DefaultRolloverStrategy more efficent when renaming >>> files. Add nomax option to the fileIndex attribute. >>> o LOG4J2-1101: RollingFileAppender now supports omitting the file name and >>> writing directly to the archive files. >>> o LOG4J2-1243: Allow default value in property to be a Lookup. >>> o LOG4J2-1787: Document how to exclude transitive conflicting dependencies >>> in Maven and Gradle. >>> o LOG4J2-1773: Add StatusLoggerRule to allow unit tests to set a status >>> level. >>> o LOG4J2-424: Add non-string data type support to JdbcAppender via new >>> ColumnMapping plugin. >>> o LOG4J2-1771: Add a Builder to ColumnConfig and deprecate >>> ColumnConfig.createColumnConfig(). >>> o LOG4J2-1770: Add a Builder to JdbcAppender and deprecate >>> JdbcAppender.createAppender(). >>> o LOG4J2-1764: Use MethodHandle in ContextDataFactory cached constructor. >>> o LOG4J2-1730: Add Apache Cassandra appender and ColumnMapping plugin. >>> o LOG4J2-1759: Add TypeConverter for java.util.UUID. >>> o LOG4J2-1758: Add TypeConverter for java.nio.file.Path. >>> o LOG4J2-1755: Add TypeConverter and constraint validators for >>> java.net.InetAddress and port numbers. >>> o LOG4J2-969: Refactor SyslogAppender so that Layout is a Plugin element. >>> o LOG4J2-1660: Added public method ThreadContext::getThreadContextMap; >>> removed class ThreadContextAccess. >>> o LOG4J2-1379: Add documentation regarding YAML configuration format. >>> o LOG4J2-1718: Introduce marker interface AsynchronouslyFormattable. >>> o LOG4J2-1681: Introduce interfaces IndexedStringMap and >>> IndexedReadOnlyStringMap, supporting garbage-free iteration over sorted map. >>> o LOG4J2-1695: Add a Builder to ScriptPatternSelector and deprecate >>> ScriptPatternSelector.createSelector(). >>> o LOG4J2-1696: Add a Builder to MarkerPatternSelector and deprecate >>> MarkerPatternSelector.createSelector(). >>> o LOG4J2-1697: Add a SerializerBuilder to PatternLayout and deprecate >>> PatternLayout.createSerializer(). >>> o LOG4J2-1701: Add a Builder to RandomAccessFileAppender and deprecate >>> RandomAccessFileAppender.createAppender(). >>> o LOG4J2-1703: Add a Builder to MemoryMappedFileAppender and deprecate >>> MemoryMappedFileAppender.createAppender(). >>> o LOG4J2-1704: Add a Builder to RollingRandomAccessFileAppender and >>> deprecate RollingRandomAccessFileAppender.createAppender(). >>> o LOG4J2-1709: Add a Builder to SyslogAppender and deprecate >>> SyslogAppender.createAppender(). >>> o LOG4J2-1707: Allow TCP Socket Appender to set socket options. >>> o LOG4J2-1708: Allow Secure Socket Appender to set socket options. >>> o LOG4J2-1737: Add a Builder to SyslogLayout and deprecate >>> SyslogLayout.createLayout(Facility, boolean, String, Charset). >>> o LOG4J2-1738: Add a Builder to JsonLayout and deprecate >>> org.apache.logging.log4j.core.layout.JsonLayout.createLayout(Configuration, >>> boolean, boolean, boolean, boolean, boolean, boolean, String, String, >>> Charset, boolean). >>> o LOG4J2-1739: Add Builder to KafkaAppender and deprecate >>> KafkaAppender.createAppender(Layout, Filter, String, boolean, String, >>> Property[], Configuration). >>> o LOG4J2-1733: Add SyncSend attribute to KafkaAppender (as in >>> KafkaLog4jAppender). Thanks to Vincent Tieleman. >>> >>> Fixed Bugs: >>> o LOG4J2-1780: Eliminate the use of the ExecutorServices in the >>> LoggerContext. >>> o LOG4J2-1786: ConfigurationScheduler now preserves interrupt flag during >>> stop. >>> o LOG4J2-1779: Fixed bug where AsyncLogger did not resolve configuration >>> properties. >>> o LOG4J2-1769: Fixed concurrency issue affecting all layouts except >>> PatternLayout and GelfLayout, which caused scrambled output and exceptions >>> when logging synchronously from multiple threads. Thanks to Brandon Goodin. >>> o LOG4J2-1724: Using variables in GelfLayout's additional fields at >>> runtime. Thanks to Alexander Krasnostavsky. >>> o LOG4J2-1762: Add Builder to GelfLayout. >>> o LOG4J2-1649: Insure the ConfigurationScheduler shuts down without >>> blocking. Thanks to Georg Friedrich. >>> o LOG4J2-1653: CronTriggeringPolicy would use the wrong date/time when >>> rolling over and create multiple triggering policies on reconfiguration. >>> Thanks to Georg Friedrich. >>> o LOG4J2-1748: Do not use non-daemon thread pool for rollover tasks. >>> o LOG4J2-1628: Fixed file locking regression in FileAppender introduced in >>> 2.6. >>> o LOG4J2-1744: The custom logger Generate tool no longer requires the >>> log4j-api module on the classpath. >>> o LOG4J2-1731: SslSocketManager now respects connectTimeoutMillis. Thanks >>> to Chris Ribble. >>> o LOG4J2-1682: Logger using LocalizedMessageFactory prints key instead of >>> message. Thanks to Markus Waidhofer. >>> o LOG4J2-1720: Make GelfLayout independent of Jackson. >>> o LOG4J2-1719: Fixed race condition in ObjectMessage and SimpleMessage, >>> ensuring that the log message contains the value the object has during the >>> logging call. >>> o LOG4J2-1688: Fixed bug where elements of a log message parameter array >>> were nulled out in garbage-free mode. >>> o LOG4J2-1692: Add putAll() method to CloseableThreadContext. Thanks to >>> Greg Thomas. >>> o LOG4J2-1689: Add CleanableThreadContextMap interface supporting method >>> removeAll(Iterable<String>). >>> o LOG4J2-1685: Option 'disableAnsi' in PatternLayout to unconditionally >>> disable ANSI escape codes. Thanks to Raman Gupta. >>> o LOG4J2-1706: Make TimeFilter usable as global filter and as logger >>> filter. >>> o LOG4J2-1722: (GC) Avoid allocating temporary objects in >>> VariablesNotEmptyReplacementConverter. >>> o LOG4J2-1717: (GC) Avoid allocating temporary objects in >>> EncodingPatternConverter. >>> o LOG4J2-1716: (GC) Avoid allocating temporary objects in >>> MapPatternConverter. (Note that constructing a MapMessage is not >>> garbage-free.) >>> o LOG4J2-1683: (GC) Avoid allocating temporary objects in MapMessage. >>> o LOG4J2-1715: (GC) Avoid allocating temporary objects in >>> NdcPatternConverter. (Note that use of the ThreadContext stack is not >>> garbage-free.) >>> o LOG4J2-1714: (GC) Avoid allocating temporary objects in >>> AbstractStyleNameConverter. >>> o LOG4J2-1680: (GC) Avoid allocating temporary objects in TimeFilter. >>> o LOG4J2-1679: (GC) Avoid allocating temporary objects in >>> StructuredDataFilter. >>> o LOG4J2-1678: (GC) Avoid allocating temporary objects in >>> ThreadContextMapFilter. >>> o LOG4J2-1677: (GC) Avoid allocating temporary objects in MapFilter. >>> o LOG4J2-1674: (GC) Avoid allocating temporary objects in ThresholdFilter. >>> o LOG4J2-1673: (GC) Avoid allocating temporary objects in MarkerFilter. >>> o LOG4J2-1672: (GC) Avoid allocating temporary objects in LevelRangeFilter. >>> o LOG4J2-1671: (GC) Avoid allocating temporary objects in >>> EqualsIgnoreCaseReplacementConverter. >>> o LOG4J2-1670: (GC) Avoid allocating temporary objects in >>> EqualsReplacementConverter. >>> o LOG4J2-1669: (GC) Avoid allocating temporary objects in >>> MaxLengthConverter. >>> o LOG4J2-1668: (GC) Avoid allocating temporary objects in >>> MarkerPatternConverter. >>> o LOG4J2-1667: (GC) Avoid allocating temporary objects in >>> SequenceNumberPatternConverter. >>> o LOG4J2-1666: (GC) Avoid allocating temporary objects in >>> RelativeTimePatternConverter. >>> o LOG4J2-1665: (GC) Avoid allocating temporary objects in >>> IntegerPatternConverter. >>> o LOG4J2-1637: Fixed problems when used in OSGi containers >>> (IllegalAccessError, NoClassDefFoundError). >>> o LOG4J2-1226: Improve LogEvent serialization to handle non-serializable >>> Messages and deserializing when required classes are missing. >>> o LOG4J2-1663: Ensure SortedArrayStringMap can be serialized and >>> deserialized without errors regardless of content. >>> o LOG4J2-1658: Prevent NPE in >>> ThreadContextMapFactory::createThreadContextMap when initializing Log4j >>> with Configurator::initialize and the BasicContextSelector is used. >>> o LOG4J2-1645: Immutable empty StringMap. >>> o LOG4J2-1623: Configurable JVM shutdown hook timeout. >>> o LOG4J2-1712: Pick up bug fixes from Apache Commons Lang's >>> org.apache.commons.lang3.time package. >>> o LOG4J2-1636: Console Appender does not pick up Oracle Java 8's >>> sun.stdout.encoding and sun.stderr.encoding. Thanks to Eldar Gabdullin. >>> o LOG4J2-1639: Fix MemoryMappedFileAppender.createAppender() Javadoc for >>> immediateFlush. Thanks to Sridhar Gopinath. >>> o LOG4J2-1676: Some LogEvents may not carry a Throwable (Use >>> Message.getThrowable() in log(Message) methods.) Thanks to Joern Huxhorn. >>> o LOG4J2-1723: Unwanted transitive dependency on geronimo-jms_1.1_spec >>> causes OSGi tests to fail. Thanks to Ludovic HOCHET. >>> o LOG4J2-1664: Improve OSGi unit tests. Thanks to Ludovic HOCHET. >>> o LOG4J2-1687: NPE in ThrowableProxy when resolving stack in Java EE/OSGi >>> environment. Thanks to Robert Christiansen. >>> o LOG4J2-1642: DefaultShutdownCallbackRegistry can throw a >>> NoClassDefFoundError. Thanks to Johno Crawford. >>> o LOG4J2-1474: CronTriggeringPolicy raise exception and fail to rollover >>> log file when evaluateOnStartup is true. Thanks to yin mingjun, Neon. >>> o LOG4J2-1734: SslSocketManagerFactory might leak Sockets when certain >>> startup errors occur. >>> o LOG4J2-1736: TcpSocketManagerFactory might leak Sockets when certain >>> startup errors occur. >>> o LOG4J2-1740: Add CronTriggeringPolicy programmatically leads to NPE. >>> o LOG4J2-1743: CompositeConfiguration does not add filters to >>> appenderRefs. Thanks to Toby Shepheard. >>> o LOG4J2-1756: Adds xmlns in schema and some other tags. Thanks to >>> shubhankar1100. >>> >>> Changes: >>> o LOG4J2-1781: Update Conversant Disruptor from 1.2.7 to 1.2.10 >>> o LOG4J2-1774: Replace MockEJB dependency in unit tests with Spring Test >>> and Mockito. >>> o LOG4J2-1644: Inefficient locking in AbstractLoggerAdapter. Thanks to Tim >>> Gokcen, Pavel Sivolobtchik. >>> o LOG4J2-1641: Update JeroMQ from 0.3.5 to 0.3.6. >>> o LOG4J2-1647: Update Commons Lang from 3.4 to 3.5. >>> o LOG4J2-1646: Migrate to Mockito 2.x in unit tests. >>> o LOG4J2-1655: Update Jackson from 2.8.3 to 2.8.4. >>> o LOG4J2-1735: Update Jackson from 2.8.4 to 2.8.5. >>> o LOG4J2-1656: Update Apache Flume from 1.6.0 to 1.7.0. >>> o LOG4J2-1698: Update LMAX Disruptor from 3.3.5 to 3.3.6. >>> o LOG4J2-1700: Update Jansi from 1.13 to 1.14. >>> o LOG4J2-1750: Update Kafka from 0.10.0.1 to 0.10.1.1. >>> o LOG4J2-1751: Update liquibase-core from 3.5.1 to 3.5.3. >>> o LOG4J2-1302: The log4j-slf4j-impl module now declares a runtime >>> dependency on log4j-core. While not technically required, this makes the >>> log4j-slf4j-impl module behave similarly to slf4j-log4j12, and facilitates >>> migration to Log4j 2. >>> >>> >>> Apache Log4j 2.8 requires a minimum of Java 7 to build and run. Log4j 2.3 >>> was the >>> last release that supported Java 6. >>> >>> 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: >>> https://logging.apache.org/log4j/2.x/ >>> >>> ================================ >>> Rocket Software, Inc. and subsidiaries ■ 77 Fourth Avenue, Waltham MA >>> 02451 ■ +1 877.328.2932 <(877)%20328-2932> ■ +1 781.577.4321 >>> <(781)%20577-4321> >>> Unsubscribe from Marketing Messages/Manage Your Subscription Preferences >>> - http://www.rocketsoftware.com/manage-your-email-preferences >>> Privacy Policy - http://www.rocketsoftware.com/ >>> company/legal/privacy-policy >>> ================================ >>> >>> This communication and any attachments may contain confidential >>> information of Rocket Software, Inc. All unauthorized use, disclosure or >>> distribution is prohibited. If you are not the intended recipient, please >>> notify Rocket Software immediately and destroy all copies of this >>> communication. Thank you. >>> >> >> > -- E-Mail: garydgreg...@gmail.com | ggreg...@apache.org Java Persistence with Hibernate, Second Edition <https://www.amazon.com/gp/product/1617290459/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1617290459> JUnit in Action, Second Edition <https://www.amazon.com/gp/product/1935182021/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182021> Spring Batch in Action <https://www.amazon.com/gp/product/1935182951/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Blink_id%7D%7D%22%3ESpring+Batch+in+Action> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182951> Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory