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 <garydgreg...@gmail.com>
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 <mikael.stal...@magine.com
> > 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 <
>> mikael.stal...@magine.com> 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 <garydgreg...@gmail.com>
>>> wrote:
>>>
>>>> On Wed, Sep 28, 2016 at 8:13 AM, Mikael Ståldal <
>>>> mikael.stal...@magine.com> 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 <garydgreg...@gmail.com>
>>>>> 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 <
>>>>>> mikael.stal...@magine.com> 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 <
>>>>>>> mikael.stal...@magine.com> 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 <
>>>>>>>> ralph.go...@dslextreme.com> 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*
>>>>>>>> mikael.stal...@magine.com
>>>>>>>> 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*
>>>>>>> mikael.stal...@magine.com
>>>>>>> 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: garydgreg...@gmail.com | ggreg...@apache.org
>>>>>> 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*
>>>>> mikael.stal...@magine.com
>>>>> 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: garydgreg...@gmail.com | ggreg...@apache.org
>>>> 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*
>>> mikael.stal...@magine.com
>>> 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*
>> mikael.stal...@magine.com
>> 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: garydgreg...@gmail.com | ggreg...@apache.org
> 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*
mikael.stal...@magine.com
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.

Reply via email to