Was this timeout thing implemented as part of any JIRA issue?
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.