On Wed, Sep 28, 2016 at 8:51 AM, Mikael Ståldal <[email protected]> wrote:
> Was this timeout thing implemented as part of any JIRA issue? > The high level ticket is: https://issues.apache.org/jira/browse/LOG4J2-1539 Gary > > On Wed, Sep 28, 2016 at 5:49 PM, Mikael Ståldal <[email protected] > > wrote: > >> To track this, I temporary added this to KafkaManager.releaseSub(): >> LOGGER.info("releaseSub: timeout=" + timeout + " " + >> timeUnit.toString(), new Throwable()); >> >> and I get: >> >> 2016-09-28 17:43:14,382 pool-1-thread-1 INFO releaseSub: timeout=0 >> MILLISECONDS java.lang.Throwable >> >> at >> org.apache.logging.log4j.core.appender.mom.kafka.KafkaManager.releaseSub(KafkaManager.java:60) >> at >> org.apache.logging.log4j.core.appender.AbstractManager.stop(AbstractManager.java:85) >> at >> org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.stop(KafkaAppender.java:107) >> at >> org.apache.logging.log4j.core.config.AbstractConfiguration.stop(AbstractConfiguration.java:349) >> at >> org.apache.logging.log4j.core.LoggerContext.stop(LoggerContext.java:329) >> at >> org.apache.logging.log4j.core.AbstractLifeCycle.stop(AbstractLifeCycle.java:127) >> at >> org.apache.logging.log4j.core.LoggerContext$1.run(LoggerContext.java:275) >> at >> org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry$RegisteredCancellable.run(DefaultShutdownCallbackRegistry.java:104) >> at >> org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry.run(DefaultShutdownCallbackRegistry.java:74) >> at java.lang.Thread.run(Thread.java:745) >> >> the culprit is AbstractLifeCycle.stop() which uses a default timeout of 0. >> >> >> On Wed, Sep 28, 2016 at 5:40 PM, Gary Gregory <[email protected]> >> wrote: >> >>> It is used when you call LifeCycle2.stop(long, TimeUnit), like stopping >>> a LoggerContext or all of Log4j through the shutdown() method. >>> >>> Gary >>> >>> On Wed, Sep 28, 2016 at 8:35 AM, Mikael Ståldal < >>> [email protected]> wrote: >>> >>>> I see that KafkaManager.releaseSub() is passed a timeout of 0 at >>>> runtime, which is not very useful. How is this actually supposed to be >>>> used? How can you make it get something else than 0? >>>> >>>> On Wed, Sep 28, 2016 at 5:33 PM, Mikael Ståldal < >>>> [email protected]> wrote: >>>> >>>>> We have already discussed this here: https://issues.apache.or >>>>> g/jira/browse/LOG4J2-1390 >>>>> >>>>> I don't think the release process is the right occasion to reopen this >>>>> discussion. Can we please keep the Kafka 0.8 compatibility for this >>>>> release, and then possibly reopen this discussion after the release (and >>>>> possibly changing it for the 2.8 release)? >>>>> >>>>> On Wed, Sep 28, 2016 at 5:24 PM, Gary Gregory <[email protected]> >>>>> wrote: >>>>> >>>>>> On Wed, Sep 28, 2016 at 8:13 AM, Mikael Ståldal < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Kafka server 0.8 is still in use, and newer Kafka clients cannot >>>>>>> connect to older Kafka servers. >>>>>>> >>>>>> >>>>>> There will always be users of old software. That does not mean that >>>>>> new versions of Log4j must support old software, especially pre-1.0 >>>>>> software. >>>>>> >>>>>> Gary >>>>>> >>>>>> >>>>>>> >>>>>>> On Wed, Sep 28, 2016 at 5:10 PM, Gary Gregory < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> I do not think it makes sense to support old versions that are not >>>>>>>> even 1.0. >>>>>>>> >>>>>>>> Gary >>>>>>>> >>>>>>>> On Wed, Sep 28, 2016 at 7:42 AM, Mikael Ståldal < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> I fixed the Kafka issue and pushed it to master branch. >>>>>>>>> >>>>>>>>> However, I have another concern, what timeout value is actually >>>>>>>>> passed in to AbstractManager.releaseSub ? >>>>>>>>> >>>>>>>>> On Wed, Sep 28, 2016 at 3:51 PM, Mikael Ståldal < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> -1 since the Kafka appender now only works with Kafka client (and >>>>>>>>>> thus server) 0.9+, even though we agreed to keep compatibility with >>>>>>>>>> 0.8 for >>>>>>>>>> the time being: >>>>>>>>>> >>>>>>>>>> https://issues.apache.org/jira/browse/LOG4J2-1390 >>>>>>>>>> >>>>>>>>>> The problem appeared with commit >>>>>>>>>> 170469514b374eb5a5a33bde6936162fd608f097 >>>>>>>>>> by Gary in KafkaManager.java (method releaseSub). >>>>>>>>>> >>>>>>>>>> I get this error with kafka-clients 0.8.2.2: >>>>>>>>>> >>>>>>>>>> java.lang.NoSuchMethodError: org.apache.kafka.clients.produ >>>>>>>>>> cer.Producer.close(JLjava/util/concurrent/TimeUnit;)V >>>>>>>>>> at org.apache.logging.log4j.core.appender.mom.kafka.KafkaManage >>>>>>>>>> r.releaseSub(KafkaManager.java:61) >>>>>>>>>> at org.apache.logging.log4j.core.appender.AbstractManager.stop( >>>>>>>>>> AbstractManager.java:85) >>>>>>>>>> at org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppend >>>>>>>>>> er.stop(KafkaAppender.java:107) >>>>>>>>>> at org.apache.logging.log4j.core.config.AbstractConfiguration.s >>>>>>>>>> top(AbstractConfiguration.java:349) >>>>>>>>>> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerConte >>>>>>>>>> xt.java:329) >>>>>>>>>> at org.apache.logging.log4j.core.AbstractLifeCycle.stop(Abstrac >>>>>>>>>> tLifeCycle.java:127) >>>>>>>>>> at org.apache.logging.log4j.core.LoggerContext$1.run(LoggerCont >>>>>>>>>> ext.java:275) >>>>>>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe >>>>>>>>>> gistry$RegisteredCancellable.run(DefaultShutdownCallbackRegi >>>>>>>>>> stry.java:104) >>>>>>>>>> at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRe >>>>>>>>>> gistry.run(DefaultShutdownCallbackRegistry.java:74) >>>>>>>>>> at java.lang.Thread.run(Thread.java:745) >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Mon, Sep 26, 2016 at 5:50 PM, Ralph Goers < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> This is a vote to release Log4j 2.6.2, the next version of the >>>>>>>>>>> Log4j 2 project. >>>>>>>>>>> >>>>>>>>>>> Please download, test, and cast your votes on the log4j >>>>>>>>>>> developers list. >>>>>>>>>>> [] +1, release the artifacts >>>>>>>>>>> [] -1, don't release because... >>>>>>>>>>> >>>>>>>>>>> The vote will remain open for 72 hours (or more if required). >>>>>>>>>>> All votes are welcome and we encourage everyone to test the >>>>>>>>>>> release, but >>>>>>>>>>> only Logging PMC votes are “officially” counted. As always, at >>>>>>>>>>> least 3 +1 >>>>>>>>>>> votes and more positive than negative votes are required. >>>>>>>>>>> >>>>>>>>>>> Changes in this version include: >>>>>>>>>>> >>>>>>>>>>> New features: >>>>>>>>>>> o LOG4J2-1578: RoutingAppender can be configured with scripts. Add >>>>>>>>>>> Script in a Routes element. >>>>>>>>>>> o LOG4J2-1597: Add a ScriptAppenderSelector to create an Appender >>>>>>>>>>> specified by a Script. >>>>>>>>>>> o LOG4J2-1349: (GC) Added support for garbage-free ThreadContext >>>>>>>>>>> map. Disabled by default, users need to enable this explicitly. >>>>>>>>>>> o LOG4J2-1447: (GC) Changed LogEvent's internal data structure for >>>>>>>>>>> context data to be garbage-free. Added method >>>>>>>>>>> LogEvent#getContextData(), deprecated method #getContextMap(). >>>>>>>>>>> o LOG4J2-1010: Users can now inject context data from other >>>>>>>>>>> sources than ThreadContext. Values can be any Object, not just >>>>>>>>>>> Strings. Thanks to Mikael Ståldal. >>>>>>>>>>> o LOG4J2-1568: Added support for >>>>>>>>>>> java.util.concurrent.LinkedTransferQueue to AsyncAppender. >>>>>>>>>>> o LOG4J2-1430: Added optional support for Conversant >>>>>>>>>>> DisruptorBlockingQueue in AsyncAppender. Thanks to John Cairns. >>>>>>>>>>> o LOG4J2-1439: Added optional support for JCTools MPSC bounded >>>>>>>>>>> lock-free queue in AsyncAppender. Thanks to Anthony Maire. >>>>>>>>>>> o LOG4J2-1558: SocketAppender now supports IO buffering. >>>>>>>>>>> o LOG4J2-1557: Add a Builder for the SocketAppender (deprecates >>>>>>>>>>> factory method). >>>>>>>>>>> o LOG4J2-1609: Add a Builder to ServletAppender and deprecate >>>>>>>>>>> factory method. >>>>>>>>>>> o LOG4J2-1553: AbstractManager now implements AutoCloseable. >>>>>>>>>>> o LOG4J2-1528: Added ability to generate Log4j 2-style XML >>>>>>>>>>> configuration file from ConfigurationBuilder. >>>>>>>>>>> o LOG4J2-1181: Added Logging API for Scala 2.10 and 2.11. >>>>>>>>>>> o LOG4J2-1512: Added options to exclude stack trace from JSON, XML >>>>>>>>>>> and YAML layouts. >>>>>>>>>>> o LOG4J2-1539: Added Core API Configurator.shutdown(LoggerContext, >>>>>>>>>>> long, TimeUnit). >>>>>>>>>>> o LOG4J2-1501: FileAppender is now able to create files on-demand. >>>>>>>>>>> o LOG4J2-1504: RollingFileAppender is now able to create files >>>>>>>>>>> on-demand. >>>>>>>>>>> o LOG4J2-1471: [PatternLayout] Add an ANSI option to %xThrowable. >>>>>>>>>>> o LOG4J2-1472: org.apache.logging.log4j.core.LoggerContext now >>>>>>>>>>> implements Closeable. >>>>>>>>>>> o LOG4J2-1458: [PatternLayout] Add an ANSI option to %message. >>>>>>>>>>> o LOG4J2-1505: Create a Builder for the FileAppender plugin to >>>>>>>>>>> facilitate adding attributes in the future. >>>>>>>>>>> o LOG4J2-1507: Allow Builders to be completely generic. >>>>>>>>>>> o LOG4J2-1508: Allow a Builder to subclass another Builder. >>>>>>>>>>> o LOG4J2-1516: Add ThreadContextMap2 interface supporting method >>>>>>>>>>> putAll(Map<String, String>). Thanks to Gary Gregory. >>>>>>>>>>> o LOG4J2-1519: Add ThreadContext.putAll(Map<String, String>). >>>>>>>>>>> o LOG4J2-1520: Add JUnit Rule implementations to manage the thread >>>>>>>>>>> context. >>>>>>>>>>> o LOG4J2-1547: The Core AbstractConfiguration now tracks its >>>>>>>>>>> LoggerContext and add Configuration.getLoggerContext(). >>>>>>>>>>> o LOG4J2-1540: The Core AbstractManager now tracks its >>>>>>>>>>> LoggerContext. >>>>>>>>>>> o LOG4J2-1577: Add a Builder to the RoutingAppender and deprecate >>>>>>>>>>> factory method. >>>>>>>>>>> >>>>>>>>>>> Fixed Bugs: >>>>>>>>>>> o LOG4J2-1611: Improved performance of context data injector for >>>>>>>>>>> web applications to be on par with standalone applications. >>>>>>>>>>> o LOG4J2-1591: Introduced new interface LifeCycle2 with >>>>>>>>>>> stop(long,TimeUnit) method to avoid breaking backwards >>>>>>>>>>> compatibility with new Configurator.shutdown(LoggerContext, long, >>>>>>>>>>> TimeUnit) API. >>>>>>>>>>> o LOG4J2-1590: Fixed issue with filters extending AbstractFilter >>>>>>>>>>> that did not override methods with unrolled varargs. >>>>>>>>>>> o LOG4J2-1583: Fixed scrambled log messages triggered by nested >>>>>>>>>>> logging from toString() method of a logging parameter object. >>>>>>>>>>> Thanks to Larry West. >>>>>>>>>>> o LOG4J2-1259: Log4j threads are no longer leaking on Tomcat >>>>>>>>>>> shutdown. Thanks to Misagh Moayyed, Steffen Offermann. >>>>>>>>>>> o LOG4J2-1051: When starting on Google App Engine, Interpolator >>>>>>>>>>> now suppresses the NoClassDefFoundError stack trace for the >>>>>>>>>>> jvmrunargs lookup. Thanks to Lukasz Lenart. >>>>>>>>>>> o LOG4J2-1582: When initializing on platforms where JMX is not >>>>>>>>>>> available, Interpolator component no longer prints stack trace for >>>>>>>>>>> warning messages. >>>>>>>>>>> o LOG4J2-1581: Unregistering JMX components no longer prints a >>>>>>>>>>> stack trace when the MBean has already been unregistered. >>>>>>>>>>> o LOG4J2-1313: Support Property values to be specified in >>>>>>>>>>> configuration as a value attribute as well as an element. Thanks to >>>>>>>>>>> Philipp Knobel, Leon Finker. >>>>>>>>>>> o LOG4J2-1575: (GC) LoggerConfig now stores configuration >>>>>>>>>>> properties in a List, not a Map to prevent creating temporary >>>>>>>>>>> Iterator objects. Added method LoggerConfig#getPropertyList(), >>>>>>>>>>> deprecated method #getProperties(). >>>>>>>>>>> o LOG4J2-1457: Fixed class loader deadlock when using async >>>>>>>>>>> logging and extended stack trace pattern. Thanks to Leon Finker. >>>>>>>>>>> o LOG4J2-1563: Fix to prevent Log4j 2.6.2 and higher from losing >>>>>>>>>>> exceptions when a security manager is present. Thanks to Jason >>>>>>>>>>> Tedor. >>>>>>>>>>> o LOG4J2-1530: Fixed issue where LogEvent.getContextStack() >>>>>>>>>>> returned null. >>>>>>>>>>> o LOG4J2-1518: Prevent deadlock in Async Loggers when queue is >>>>>>>>>>> full and logged Object's toString() logs another message. Thanks to >>>>>>>>>>> Leon Finker. >>>>>>>>>>> o LOG4J2-1542: Prevent ArrayIndexOutOfBoundsException in >>>>>>>>>>> ParameterizedMessage.formatTo for single-char or empty messages. >>>>>>>>>>> Thanks to Rogério Lecarião Leite. >>>>>>>>>>> o LOG4J2-1549: Fixed issue where >>>>>>>>>>> AsyncLoggerContextSelector+PropertiesConfigurationBuilder defaulted >>>>>>>>>>> to includeLocation=true. Thanks to Jason Bedard. >>>>>>>>>>> o LOG4J2-1562: Prevent SocketAppender memory usage from growing >>>>>>>>>>> unbounded if it cannot connect to a server. >>>>>>>>>>> o LOG4J2-1559: Prevent NPE in Level.isInRange. Thanks to Andrey >>>>>>>>>>> Plotkin. >>>>>>>>>>> o LOG4J2-1511: DynamicThresholdFilter filtered incorrectly when >>>>>>>>>>> params were passed as individual arguments instead of varargs. >>>>>>>>>>> Thanks to Srikanth Surukuntu. >>>>>>>>>>> o LOG4J2-1548: [CronTriggeringPolicy] ConfigurationScheduler >>>>>>>>>>> scheduled the task infinitely after first fire. >>>>>>>>>>> o LOG4J2-1506: Log4j should not unregister JMX MBeans when >>>>>>>>>>> log4j2.disable.jmx property is true. Thanks to Johannes Schleger. >>>>>>>>>>> o LOG4J2-1490: Log4j2 should postpone creating log file until the >>>>>>>>>>> appender actually receives an event. Thanks to Krzysztof Taborski. >>>>>>>>>>> o LOG4J2-1320: Support loading custom plugins from jar files and >>>>>>>>>>> directories whose classpath entries use the "vfs" URL protocol. >>>>>>>>>>> Thanks to Paresh Varke, Pierrick Hymbert. >>>>>>>>>>> o LOG4J2-1541: Fix file handle resource leak in >>>>>>>>>>> XmlConfiguration.XmlConfiguration(ConfigurationSource). >>>>>>>>>>> o LOG4J2-1538: Prevent NPE when dynamically removing filters. >>>>>>>>>>> Thanks to Igor Karpov. >>>>>>>>>>> o LOG4J2-1532: Attributes were not merged properly in composite >>>>>>>>>>> configurations. >>>>>>>>>>> o LOG4J2-1529: Attributes were not merged properly in composite >>>>>>>>>>> configurations. Thanks to Sridevi Narra. >>>>>>>>>>> o LOG4J2-1527: Prevent NPE in >>>>>>>>>>> RingBufferLogEvent.getFormattedMessage() when used in web >>>>>>>>>>> applications. Thanks to Jose Leon. >>>>>>>>>>> o LOG4J2-905: Added ability to disable (date) lookup completely >>>>>>>>>>> for compatibility with other libraries like Camel. Thanks to Moritz >>>>>>>>>>> Löser. >>>>>>>>>>> o LOG4J2-1526: Added support for setting StatusLogger destination >>>>>>>>>>> in ConfigurationBuilder. >>>>>>>>>>> o LOG4J2-1448: Allow comma separated agents, host list to be >>>>>>>>>>> passed to FlumeAppender. Thanks to Keith Laban. >>>>>>>>>>> o LOG4J2-1500: Merging configurations failed with an NPE when >>>>>>>>>>> comparing Nodes with different attributes. Thanks to Jose Leon. >>>>>>>>>>> o LOG4J2-1482: Fixed improper header in CsvParameterLayout. Thanks >>>>>>>>>>> to Sumit Singhal. >>>>>>>>>>> o LOG4J2-1199: Documented that JVM Input Arguments Lookup (JMX) is >>>>>>>>>>> not available on Google App Engine. >>>>>>>>>>> o LOG4J2-1438: (GC) Added method getParameter() to ObjectMessage >>>>>>>>>>> (and ReusableObjectMessage). >>>>>>>>>>> o LOG4J2-1488: (GC) Fixed ISO8601 %date conversion pattern with a >>>>>>>>>>> period '.' separator for milliseconds is now garbage free. Thanks >>>>>>>>>>> to Richard Zschech. >>>>>>>>>>> o LOG4J2-1489: (GC) Fixed %date conversion patterns with a >>>>>>>>>>> timezone parameter are now garbage free. Thanks to Richard Zschech. >>>>>>>>>>> o LOG4J2-1279: Prevent NullPointerException in >>>>>>>>>>> FastDateParser$TimeZoneStrategy. Thanks to Tony Baines. >>>>>>>>>>> o LOG4J2-1341: (GC) HighlightConverter and StyleConverter are now >>>>>>>>>>> GC-free. Thanks to Richard Zschech. >>>>>>>>>>> o LOG4J2-1467: [OSGi] Fixed missing import package. Thanks to >>>>>>>>>>> Ralf, Gary Gregory. >>>>>>>>>>> o LOG4J2-351: [OSGi] Fixed wrong Fragment-Host in manifest files. >>>>>>>>>>> Thanks to Roland Weiglhofer. >>>>>>>>>>> o LOG4J2-1313: Properties declared in configuration can now have >>>>>>>>>>> their value either in the element body or in an attribute named >>>>>>>>>>> "value". Thanks to Philipp Knobel. >>>>>>>>>>> o LOG4J2-1235: >>>>>>>>>>> org.apache.logging.log4j.core.appender.routing.IdlePurgePolicy was >>>>>>>>>>> not working correctly. Thanks to Niranjan Rao, Sascha Scholz, >>>>>>>>>>> Aleksey Zvolinsky. >>>>>>>>>>> o LOG4J2-1502: Fixed issue where CsvParameterLayout and >>>>>>>>>>> CsvLogEventLayout inserted NUL characters if data starts with {, (, >>>>>>>>>>> [ or " Thanks to Sumit Singhal. >>>>>>>>>>> o LOG4J2-1573: Layout is no longer optional. Thanks to Steffen >>>>>>>>>>> Offermann. >>>>>>>>>>> o LOG4J2-1608: ServletAppender does not provide throwable object >>>>>>>>>>> to ServletContext. >>>>>>>>>>> o LOG4J2-1599: Prevent potential NPE in >>>>>>>>>>> org.apache.logging.log4j.message.ParameterFormatter.formatMessage3(StringBuilder, >>>>>>>>>>> char[], int, Object[], int, int[]). >>>>>>>>>>> o LOG4J2-1600: Prevent potential NPE due to >>>>>>>>>>> org.apache.logging.log4j.core.layout.MarkerPatternSelector.createSelector(PatternMatch[], >>>>>>>>>>> String, boolean, boolean, Configuration). >>>>>>>>>>> o LOG4J2-1601: Prevent potential NPE due to >>>>>>>>>>> org.apache.logging.log4j.core.layout.ScriptPatternSelector.createSelector(AbstractScript, >>>>>>>>>>> PatternMatch[], String, boolean, boolean, Configuration). >>>>>>>>>>> o LOG4J2-1602: Prevent potential NPE in >>>>>>>>>>> org.apache.logging.log4j.core.util.datetime.FormatCache.MultipartKey.equals(Object) >>>>>>>>>>> when object is null. >>>>>>>>>>> o LOG4J2-1603: Redo hashCode() and equals() methods in >>>>>>>>>>> org.apache.logging.log4j.core.net.ssl classes. >>>>>>>>>>> o LOG4J2-1610: Add targetNamespace to log4j-config.xsd. GitHub >>>>>>>>>>> #43. Thanks to Shubhankar. >>>>>>>>>>> >>>>>>>>>>> Changes: >>>>>>>>>>> o LOG4J2-1604: Log4j2 TcpSocketServer in background. Thanks to >>>>>>>>>>> Colin Hillman. >>>>>>>>>>> o LOG4J2-1574: Allow the RollingFileAppender to use default >>>>>>>>>>> pattern layout. >>>>>>>>>>> o LOG4J2-1556: Custom Log4j threads now extend Log4jThread. >>>>>>>>>>> o LOG4J2-1605: Improve error messages for TcpSocketServer and >>>>>>>>>>> UdpSocketServer. >>>>>>>>>>> o LOG4J2-1458: Updated Jackson from 2.7.5 to 2.8.0. >>>>>>>>>>> o LOG4J2-1494: Updated Jackson from 2.8.0 to 2.8.1. >>>>>>>>>>> o LOG4J2-1569: Updated Jackson from 2.8.1 to 2.8.2. >>>>>>>>>>> o LOG4J2-1598: Updated Jackson from 2.8.2 to 2.8.3. >>>>>>>>>>> o LOG4J2-1495: Updated LMAX Disruptor from 3.3.4 to 3.3.5. >>>>>>>>>>> o LOG4J2-1496: Updated Kafka client from 0.9.1.0 to 0.10.0.0. >>>>>>>>>>> o LOG4J2-1533: Updated Kafka client from 0.10.0.0 to 0.10.0.1. >>>>>>>>>>> o LOG4J2-1487: Updated JMS test from ActiveMQ 5.13.3 to 5.13.4. >>>>>>>>>>> o LOG4J2-1551: Updated JMS test from ActiveMQ 5.13.4 to 5.14.0. >>>>>>>>>>> o LOG4J2-1543: Removed deprecated Core API >>>>>>>>>>> org.apache.logging.log4j.core.util.Constants.UTF_8. >>>>>>>>>>> o LOG4J2-1544: Removed deprecated Core API >>>>>>>>>>> org.apache.logging.log4j.core.util.Assert.requireNonNull(T, String). >>>>>>>>>>> o LOG4J2-1545: Removed deprecated Web API >>>>>>>>>>> org.apache.logging.log4j.web.WebLookup.getServletContext(). >>>>>>>>>>> >>>>>>>>>>> Tag: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> a) for a new copy do "git clone >>>>>>>>>>> https://git-wip-us.apache.org/repos/asf/logging-log4j2.git" and >>>>>>>>>>> then "git checkout tags/log4j-2.7-rc1” >>>>>>>>>>> b) for an existing working copy to “git pull” and then “git >>>>>>>>>>> checkout tags/log4j-2.7-rc1” >>>>>>>>>>> >>>>>>>>>>> Web Site: >>>>>>>>>>> <http://rgoers.github.io/log4j2-site/index.html>http://rgoers.github.io/log4j2-site/index.html >>>>>>>>>>> >>>>>>>>>>> Artifacts: >>>>>>>>>>> https://repository.apache.org/content/repositories/orgapachelogging-1021/ >>>>>>>>>>> >>>>>>>>>>> You may download all the artifacts by executing: >>>>>>>>>>> >>>>>>>>>>> wget -e robots=off --cut-dirs=7 -nH -r -p -np >>>>>>>>>>> --no-check-certificate >>>>>>>>>>> https://repository.apache.org/content/repositories/orgapachelogging-1021/org/apache/logging/log4j/ >>>>>>>>>>> >>>>>>>>>>> Ralph >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> [image: MagineTV] >>>>>>>>>> >>>>>>>>>> *Mikael Ståldal* >>>>>>>>>> Senior software developer >>>>>>>>>> >>>>>>>>>> *Magine TV* >>>>>>>>>> [email protected] >>>>>>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >>>>>>>>>> >>>>>>>>>> Privileged and/or Confidential Information may be contained in >>>>>>>>>> this message. If you are not the addressee indicated in this message >>>>>>>>>> (or responsible for delivery of the message to such a person), >>>>>>>>>> you may not copy or deliver this message to anyone. In such case, >>>>>>>>>> you should destroy this message and kindly notify the sender by >>>>>>>>>> reply email. >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> [image: MagineTV] >>>>>>>>> >>>>>>>>> *Mikael Ståldal* >>>>>>>>> Senior software developer >>>>>>>>> >>>>>>>>> *Magine TV* >>>>>>>>> [email protected] >>>>>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >>>>>>>>> >>>>>>>>> Privileged and/or Confidential Information may be contained in >>>>>>>>> this message. If you are not the addressee indicated in this message >>>>>>>>> (or responsible for delivery of the message to such a person), you >>>>>>>>> may not copy or deliver this message to anyone. In such case, >>>>>>>>> you should destroy this message and kindly notify the sender by >>>>>>>>> reply email. >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> E-Mail: [email protected] | [email protected] >>>>>>>> Java Persistence with Hibernate, Second Edition >>>>>>>> <http://www.manning.com/bauer3/> >>>>>>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >>>>>>>> Spring Batch in Action <http://www.manning.com/templier/> >>>>>>>> Blog: http://garygregory.wordpress.com >>>>>>>> Home: http://garygregory.com/ >>>>>>>> Tweet! http://twitter.com/GaryGregory >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> [image: MagineTV] >>>>>>> >>>>>>> *Mikael Ståldal* >>>>>>> Senior software developer >>>>>>> >>>>>>> *Magine TV* >>>>>>> [email protected] >>>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >>>>>>> >>>>>>> Privileged and/or Confidential Information may be contained in this >>>>>>> message. If you are not the addressee indicated in this message >>>>>>> (or responsible for delivery of the message to such a person), you >>>>>>> may not copy or deliver this message to anyone. In such case, >>>>>>> you should destroy this message and kindly notify the sender by >>>>>>> reply email. >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> E-Mail: [email protected] | [email protected] >>>>>> Java Persistence with Hibernate, Second Edition >>>>>> <http://www.manning.com/bauer3/> >>>>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >>>>>> Spring Batch in Action <http://www.manning.com/templier/> >>>>>> Blog: http://garygregory.wordpress.com >>>>>> Home: http://garygregory.com/ >>>>>> Tweet! http://twitter.com/GaryGregory >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> [image: MagineTV] >>>>> >>>>> *Mikael Ståldal* >>>>> Senior software developer >>>>> >>>>> *Magine TV* >>>>> [email protected] >>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >>>>> >>>>> Privileged and/or Confidential Information may be contained in this >>>>> message. If you are not the addressee indicated in this message >>>>> (or responsible for delivery of the message to such a person), you may >>>>> not copy or deliver this message to anyone. In such case, >>>>> you should destroy this message and kindly notify the sender by reply >>>>> email. >>>>> >>>> >>>> >>>> >>>> -- >>>> [image: MagineTV] >>>> >>>> *Mikael Ståldal* >>>> Senior software developer >>>> >>>> *Magine TV* >>>> [email protected] >>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >>>> >>>> Privileged and/or Confidential Information may be contained in this >>>> message. If you are not the addressee indicated in this message >>>> (or responsible for delivery of the message to such a person), you may >>>> not copy or deliver this message to anyone. In such case, >>>> you should destroy this message and kindly notify the sender by reply >>>> email. >>>> >>> >>> >>> >>> -- >>> E-Mail: [email protected] | [email protected] >>> Java Persistence with Hibernate, Second Edition >>> <http://www.manning.com/bauer3/> >>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >>> Spring Batch in Action <http://www.manning.com/templier/> >>> Blog: http://garygregory.wordpress.com >>> Home: http://garygregory.com/ >>> Tweet! http://twitter.com/GaryGregory >>> >> >> >> >> -- >> [image: MagineTV] >> >> *Mikael Ståldal* >> Senior software developer >> >> *Magine TV* >> [email protected] >> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com >> >> Privileged and/or Confidential Information may be contained in this >> message. If you are not the addressee indicated in this message >> (or responsible for delivery of the message to such a person), you may >> not copy or deliver this message to anyone. In such case, >> you should destroy this message and kindly notify the sender by reply >> email. >> > > > > -- > [image: MagineTV] > > *Mikael Ståldal* > Senior software developer > > *Magine TV* > [email protected] > Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com > > Privileged and/or Confidential Information may be contained in this > message. If you are not the addressee indicated in this message > (or responsible for delivery of the message to such a person), you may not > copy or deliver this message to anyone. In such case, > you should destroy this message and kindly notify the sender by reply > email. > -- E-Mail: [email protected] | [email protected] Java Persistence with Hibernate, Second Edition <http://www.manning.com/bauer3/> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> Spring Batch in Action <http://www.manning.com/templier/> Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory
