And you are building with Java 7? Ralph
> On Sep 5, 2016, at 2:18 PM, Gary Gregory <garydgreg...@gmail.com> wrote: > > Locally, I get: > > Failed tests: > RoutingAppenderWithPurgingTest.routingTest:91 Incorrect number of appenders > with IdlePurgePolicy. expected:<3> but was:<1> > > Gary > > On Mon, Sep 5, 2016 at 12:54 PM, Ralph Goers <ralph.go...@dslextreme.com > <mailto:ralph.go...@dslextreme.com>> wrote: > For the record, I am voting -1 on this commit. It breaks the build because > the DisruptorBlockingQueueFactory has a dependency that requires Java 8. The > 2.7 release is blocked until this is corrected. > > Ralph > > > On Sep 4, 2016, at 11:38 AM, mattsic...@apache.org > > <mailto:mattsic...@apache.org> wrote: > > > > Convert BlockingQueueFactory into a plugin element > > > > Related to LOG4J2-1430. > > > > > > Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo > > <http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo> > > Commit: > > http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/65ec9bce > > <http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/65ec9bce> > > Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/65ec9bce > > <http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/65ec9bce> > > Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/65ec9bce > > <http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/65ec9bce> > > > > Branch: refs/heads/master > > Commit: 65ec9bcef74dc30ecab9c2091c6e0638d53490d8 > > Parents: 0848d7a > > Author: Matt Sicker <boa...@gmail.com <mailto:boa...@gmail.com>> > > Authored: Fri Jun 17 18:51:08 2016 -0500 > > Committer: Matt Sicker <boa...@gmail.com <mailto:boa...@gmail.com>> > > Committed: Fri Jun 17 18:51:08 2016 -0500 > > > > ---------------------------------------------------------------------- > > .../log4j/core/appender/AsyncAppender.java | 24 +++++++++--- > > .../core/async/ArrayBlockingQueueFactory.java | 10 +++++ > > .../log4j/core/async/BlockingQueueFactory.java | 13 ++++++- > > .../async/DisruptorBlockingQueueFactory.java | 11 +++++- > > .../core/async/LinkedTransferQueueFactory.java | 10 +++++ > > .../log4j/core/appender/AsyncAppenderTest.java | 16 ++++---- > > .../BlockingQueueFactory-ArrayBlockingQueue.xml | 40 ++++++++++++++++++++ > > ...ckingQueueFactory-DisruptorBlockingQueue.xml | 40 ++++++++++++++++++++ > > ...BlockingQueueFactory-LinkedTransferQueue.xml | 40 ++++++++++++++++++++ > > 9 files changed, 189 insertions(+), 15 deletions(-) > > ---------------------------------------------------------------------- > > > > > > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/65ec9bce/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java > > > > <http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/65ec9bce/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java> > > ---------------------------------------------------------------------- > > diff --git > > a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java > > > > b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java > > index 3c9c37c..dee5e50 100644 > > --- > > a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java > > +++ > > b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java > > @@ -26,8 +26,11 @@ import org.apache.logging.log4j.core.AbstractLogEvent; > > import org.apache.logging.log4j.core.Appender; > > import org.apache.logging.log4j.core.Filter; > > import org.apache.logging.log4j.core.LogEvent; > > +import org.apache.logging.log4j.core.async.ArrayBlockingQueueFactory; > > import org.apache.logging.log4j.core.async.AsyncQueueFullPolicy; > > import org.apache.logging.log4j.core.async.AsyncQueueFullPolicyFactory; > > +import org.apache.logging.log4j.core.async.BlockingQueueFactory; > > +import org.apache.logging.log4j.core.async.BlockingQueueFactoryUtil; > > import org.apache.logging.log4j.core.async.DiscardingAsyncQueueFullPolicy; > > import org.apache.logging.log4j.core.async.EventRoute; > > import org.apache.logging.log4j.core.config.AppenderControl; > > @@ -42,7 +45,6 @@ import > > org.apache.logging.log4j.core.config.plugins.PluginConfiguration; > > import org.apache.logging.log4j.core.config.plugins.PluginElement; > > import > > org.apache.logging.log4j.core.config.plugins.validation.constraints.Required; > > import org.apache.logging.log4j.core.impl.Log4jLogEvent; > > -import org.apache.logging.log4j.core.async.BlockingQueueFactoryUtil; > > import org.apache.logging.log4j.core.util.Constants; > > > > /** > > @@ -73,8 +75,8 @@ public final class AsyncAppender extends AbstractAppender > > { > > > > private AsyncAppender(final String name, final Filter filter, final > > AppenderRef[] appenderRefs, > > final String errorRef, final int queueSize, final > > boolean blocking, > > - final boolean ignoreExceptions, > > - final long shutdownTimeout, final Configuration > > config, final boolean includeLocation) { > > + final boolean ignoreExceptions, final long > > shutdownTimeout, final Configuration config, > > + final boolean includeLocation, final > > BlockingQueueFactory<LogEvent> blockingQueueFactory) { > > super(name, filter, null, ignoreExceptions); > > this.queue = > > BlockingQueueFactoryUtil.<LogEvent>getBlockingQueueFactory().create(queueSize); > > this.queueSize = queueSize; > > @@ -217,7 +219,9 @@ public final class AsyncAppender extends > > AbstractAppender { > > } > > > > /** > > - * Create an AsyncAppender. > > + * Create an AsyncAppender. This method is retained for backwards > > compatibility. New code should use the > > + * {@link Builder} instead. This factory will use {@link > > ArrayBlockingQueueFactory} by default as was the behavior > > + * pre-2.7. > > * > > * @param appenderRefs The Appenders to reference. > > * @param errorRef An optional Appender to write to if the > > queue is full or other errors occur. > > @@ -247,7 +251,7 @@ public final class AsyncAppender extends > > AbstractAppender { > > } > > > > return new AsyncAppender(name, filter, appenderRefs, errorRef, > > size, blocking, ignoreExceptions, > > - shutdownTimeout, config, includeLocation); > > + shutdownTimeout, config, includeLocation, new > > ArrayBlockingQueueFactory<LogEvent>()); > > } > > > > @PluginBuilderFactory > > @@ -290,6 +294,9 @@ public final class AsyncAppender extends > > AbstractAppender { > > @PluginBuilderAttribute > > private boolean ignoreExceptions = true; > > > > + @PluginElement(BlockingQueueFactory.ELEMENT_TYPE) > > + private BlockingQueueFactory<LogEvent> blockingQueueFactory = new > > ArrayBlockingQueueFactory<>(); > > + > > public Builder setAppenderRefs(AppenderRef[] appenderRefs) { > > this.appenderRefs = appenderRefs; > > return this; > > @@ -340,10 +347,15 @@ public final class AsyncAppender extends > > AbstractAppender { > > return this; > > } > > > > + public Builder setBlockingQueueFactory(final > > BlockingQueueFactory<LogEvent> blockingQueueFactory) { > > + this.blockingQueueFactory = blockingQueueFactory; > > + return this; > > + } > > + > > @Override > > public AsyncAppender build() { > > return new AsyncAppender(name, filter, appenderRefs, errorRef, > > bufferSize, blocking, ignoreExceptions, > > - shutdownTimeout, configuration, includeLocation); > > + shutdownTimeout, configuration, includeLocation, > > blockingQueueFactory); > > } > > } > > > > > > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/65ec9bce/log4j-core/src/main/java/org/apache/logging/log4j/core/async/ArrayBlockingQueueFactory.java > > > > <http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/65ec9bce/log4j-core/src/main/java/org/apache/logging/log4j/core/async/ArrayBlockingQueueFactory.java> > > ---------------------------------------------------------------------- > > diff --git > > a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/ArrayBlockingQueueFactory.java > > > > b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/ArrayBlockingQueueFactory.java > > index e9c99b8..dcad78a 100644 > > --- > > a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/ArrayBlockingQueueFactory.java > > +++ > > b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/ArrayBlockingQueueFactory.java > > @@ -3,14 +3,24 @@ package org.apache.logging.log4j.core.async; > > import java.util.concurrent.ArrayBlockingQueue; > > import java.util.concurrent.BlockingQueue; > > > > +import org.apache.logging.log4j.core.config.Node; > > +import org.apache.logging.log4j.core.config.plugins.Plugin; > > +import org.apache.logging.log4j.core.config.plugins.PluginFactory; > > + > > /** > > * Factory for creating instances of {@link ArrayBlockingQueue}. > > * > > * @since 2.7 > > */ > > +@Plugin(name = "ArrayBlockingQueue", category = Node.CATEGORY, elementType > > = BlockingQueueFactory.ELEMENT_TYPE) > > public class ArrayBlockingQueueFactory<E> implements > > BlockingQueueFactory<E> { > > @Override > > public BlockingQueue<E> create(int capacity) { > > return new ArrayBlockingQueue<>(capacity); > > } > > + > > + @PluginFactory > > + public static <E> ArrayBlockingQueueFactory<E> createFactory() { > > + return new ArrayBlockingQueueFactory<>(); > > + } > > } > > > > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/65ec9bce/log4j-core/src/main/java/org/apache/logging/log4j/core/async/BlockingQueueFactory.java > > > > <http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/65ec9bce/log4j-core/src/main/java/org/apache/logging/log4j/core/async/BlockingQueueFactory.java> > > ---------------------------------------------------------------------- > > diff --git > > a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/BlockingQueueFactory.java > > > > b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/BlockingQueueFactory.java > > index ccd1625..5763d1e 100644 > > --- > > a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/BlockingQueueFactory.java > > +++ > > b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/BlockingQueueFactory.java > > @@ -9,7 +9,18 @@ import java.util.concurrent.BlockingQueue; > > */ > > public interface BlockingQueueFactory<E> { > > > > - String PROPERTY = "log4j.BlockingQueueFactory"; > > + /** > > + * The {@link > > org.apache.logging.log4j.core.config.plugins.Plugin#elementType() element > > type} to use for plugins > > + * implementing this interface. > > + */ > > + String ELEMENT_TYPE = "BlockingQueueFactory"; > > > > + /** > > + * Creates a new BlockingQueue with the specified maximum capacity. > > Note that not all implementations of > > + * BlockingQueue support a bounded capacity in which case the value is > > ignored. > > + * > > + * @param capacity maximum size of the queue if supported > > + * @return a new BlockingQueue > > + */ > > BlockingQueue<E> create(int capacity); > > } > > > > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/65ec9bce/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorBlockingQueueFactory.java > > > > <http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/65ec9bce/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorBlockingQueueFactory.java> > > ---------------------------------------------------------------------- > > diff --git > > a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorBlockingQueueFactory.java > > > > b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorBlockingQueueFactory.java > > index 8fb3707..add375d 100644 > > --- > > a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorBlockingQueueFactory.java > > +++ > > b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorBlockingQueueFactory.java > > @@ -3,15 +3,24 @@ package org.apache.logging.log4j.core.async; > > import java.util.concurrent.BlockingQueue; > > > > import com.conversantmedia.util.concurrent.DisruptorBlockingQueue; > > +import org.apache.logging.log4j.core.config.Node; > > +import org.apache.logging.log4j.core.config.plugins.Plugin; > > +import org.apache.logging.log4j.core.config.plugins.PluginFactory; > > > > /** > > * Factory for creating instances of {@link DisruptorBlockingQueue}. > > * > > * @since 2.7 > > */ > > +@Plugin(name = "DisruptorBlockingQueue", category = Node.CATEGORY, > > elementType = BlockingQueueFactory.ELEMENT_TYPE) > > public class DisruptorBlockingQueueFactory<E> implements > > BlockingQueueFactory<E> { > > @Override > > public BlockingQueue<E> create(int capacity) { > > - return new DisruptorBlockingQueue<E>(capacity); > > + return new DisruptorBlockingQueue<>(capacity); > > + } > > + > > + @PluginFactory > > + public static <E> DisruptorBlockingQueueFactory<E> createFactory() { > > + return new DisruptorBlockingQueueFactory<>(); > > } > > } > > > > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/65ec9bce/log4j-core/src/main/java/org/apache/logging/log4j/core/async/LinkedTransferQueueFactory.java > > > > <http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/65ec9bce/log4j-core/src/main/java/org/apache/logging/log4j/core/async/LinkedTransferQueueFactory.java> > > ---------------------------------------------------------------------- > > diff --git > > a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/LinkedTransferQueueFactory.java > > > > b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/LinkedTransferQueueFactory.java > > index 862fab3..6ab24e7 100644 > > --- > > a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/LinkedTransferQueueFactory.java > > +++ > > b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/LinkedTransferQueueFactory.java > > @@ -20,14 +20,24 @@ package org.apache.logging.log4j.core.async; > > import java.util.concurrent.BlockingQueue; > > import java.util.concurrent.LinkedTransferQueue; > > > > +import org.apache.logging.log4j.core.config.Node; > > +import org.apache.logging.log4j.core.config.plugins.Plugin; > > +import org.apache.logging.log4j.core.config.plugins.PluginFactory; > > + > > /** > > * Factory for creating instances of {@link LinkedTransferQueue}. > > * > > * @since 2.7 > > */ > > +@Plugin(name = "LinkedTransferQueue", category = Node.CATEGORY, > > elementType = BlockingQueueFactory.ELEMENT_TYPE) > > public class LinkedTransferQueueFactory<E> implements > > BlockingQueueFactory<E> { > > @Override > > public BlockingQueue<E> create(int capacity) { > > return new LinkedTransferQueue<>(); > > } > > + > > + @PluginFactory > > + public static <E> LinkedTransferQueueFactory<E> createFactory() { > > + return new LinkedTransferQueueFactory<>(); > > + } > > } > > > > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/65ec9bce/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/AsyncAppenderTest.java > > > > <http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/65ec9bce/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/AsyncAppenderTest.java> > > ---------------------------------------------------------------------- > > diff --git > > a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/AsyncAppenderTest.java > > > > b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/AsyncAppenderTest.java > > index 3066f38..076fdd0 100644 > > --- > > a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/AsyncAppenderTest.java > > +++ > > b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/AsyncAppenderTest.java > > @@ -41,19 +41,21 @@ import static org.junit.Assert.*; > > */ > > @RunWith(Parameterized.class) > > public class AsyncAppenderTest { > > - private static final String CONFIG = "log4j-asynch.xml"; > > > > @Parameterized.Parameters > > public static Object[] data() { > > - return new Class<?>[]{ > > - ArrayBlockingQueueFactory.class, > > - DisruptorBlockingQueueFactory.class, > > - LinkedTransferQueueFactory.class > > + return new String[]{ > > + // default async config uses array blocking queue > > + "log4j-asynch.xml", > > + // override default blocking queue implementations > > + "BlockingQueueFactory-ArrayBlockingQueue.xml", > > + "BlockingQueueFactory-DisruptorBlockingQueue.xml", > > + "BlockingQueueFactory-LinkedTransferQueue.xml" > > }; > > } > > > > - public AsyncAppenderTest(final Class<? extends BlockingQueueFactory> > > factory) { > > - context = new > > LoggerContextRule(CONFIG).withSystemProperty(BlockingQueueFactory.PROPERTY, > > factory.getName()); > > + public AsyncAppenderTest(final String configFileName) { > > + context = new LoggerContextRule(configFileName); > > } > > > > @Rule > > > > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/65ec9bce/log4j-core/src/test/resources/BlockingQueueFactory-ArrayBlockingQueue.xml > > > > <http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/65ec9bce/log4j-core/src/test/resources/BlockingQueueFactory-ArrayBlockingQueue.xml> > > ---------------------------------------------------------------------- > > diff --git > > a/log4j-core/src/test/resources/BlockingQueueFactory-ArrayBlockingQueue.xml > > b/log4j-core/src/test/resources/BlockingQueueFactory-ArrayBlockingQueue.xml > > new file mode 100644 > > index 0000000..e8bbfa6 > > --- /dev/null > > +++ > > b/log4j-core/src/test/resources/BlockingQueueFactory-ArrayBlockingQueue.xml > > @@ -0,0 +1,40 @@ > > +<?xml version="1.0" encoding="UTF-8"?> > > +<!-- > > + Licensed to the Apache Software Foundation (ASF) under one or more > > + contributor license agreements. See the NOTICE file distributed with > > + this work for additional information regarding copyright ownership. > > + The ASF licenses this file to You under the Apache License, Version 2.0 > > + (the "License"); you may not use this file except in compliance with > > + the License. You may obtain a copy of the License at > > + > > + http://www.apache.org/licenses/LICENSE-2.0 > > <http://www.apache.org/licenses/LICENSE-2.0> > > + > > + Unless required by applicable law or agreed to in writing, software > > + distributed under the License is distributed on an "AS IS" BASIS, > > + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > > + See the License for the specific language governing permissions and > > + limitations under the License. > > + > > +--> > > +<Configuration status="OFF" name="ArrayBlockingQueueFactory"> > > + > > + <Appenders> > > + <Console name="STDOUT"> > > + <PatternLayout pattern="%m%n"/> > > + </Console> > > + <List name="List"> > > + <PatternLayout pattern="%C %M %m"/> > > + </List> > > + <Async name="Async" includeLocation="true" error-ref="STDOUT"> > > + <AppenderRef ref="List"/> > > + <ArrayBlockingQueue/> > > + </Async> > > + </Appenders> > > + > > + <Loggers> > > + <Root level="debug"> > > + <AppenderRef ref="Async"/> > > + </Root> > > + </Loggers> > > + > > +</Configuration> > > \ No newline at end of file > > > > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/65ec9bce/log4j-core/src/test/resources/BlockingQueueFactory-DisruptorBlockingQueue.xml > > > > <http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/65ec9bce/log4j-core/src/test/resources/BlockingQueueFactory-DisruptorBlockingQueue.xml> > > ---------------------------------------------------------------------- > > diff --git > > a/log4j-core/src/test/resources/BlockingQueueFactory-DisruptorBlockingQueue.xml > > > > b/log4j-core/src/test/resources/BlockingQueueFactory-DisruptorBlockingQueue.xml > > new file mode 100644 > > index 0000000..268cca7 > > --- /dev/null > > +++ > > b/log4j-core/src/test/resources/BlockingQueueFactory-DisruptorBlockingQueue.xml > > @@ -0,0 +1,40 @@ > > +<?xml version="1.0" encoding="UTF-8"?> > > +<!-- > > + Licensed to the Apache Software Foundation (ASF) under one or more > > + contributor license agreements. See the NOTICE file distributed with > > + this work for additional information regarding copyright ownership. > > + The ASF licenses this file to You under the Apache License, Version 2.0 > > + (the "License"); you may not use this file except in compliance with > > + the License. You may obtain a copy of the License at > > + > > + http://www.apache.org/licenses/LICENSE-2.0 > > <http://www.apache.org/licenses/LICENSE-2.0> > > + > > + Unless required by applicable law or agreed to in writing, software > > + distributed under the License is distributed on an "AS IS" BASIS, > > + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > > + See the License for the specific language governing permissions and > > + limitations under the License. > > + > > +--> > > +<Configuration status="OFF" name="DisruptorBlockingQueueFactory"> > > + > > + <Appenders> > > + <Console name="STDOUT"> > > + <PatternLayout pattern="%m%n"/> > > + </Console> > > + <List name="List"> > > + <PatternLayout pattern="%C %M %m"/> > > + </List> > > + <Async name="Async" includeLocation="true" error-ref="STDOUT"> > > + <AppenderRef ref="List"/> > > + <DisruptorBlockingQueue/> > > + </Async> > > + </Appenders> > > + > > + <Loggers> > > + <Root level="debug"> > > + <AppenderRef ref="Async"/> > > + </Root> > > + </Loggers> > > + > > +</Configuration> > > \ No newline at end of file > > > > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/65ec9bce/log4j-core/src/test/resources/BlockingQueueFactory-LinkedTransferQueue.xml > > > > <http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/65ec9bce/log4j-core/src/test/resources/BlockingQueueFactory-LinkedTransferQueue.xml> > > ---------------------------------------------------------------------- > > diff --git > > a/log4j-core/src/test/resources/BlockingQueueFactory-LinkedTransferQueue.xml > > > > b/log4j-core/src/test/resources/BlockingQueueFactory-LinkedTransferQueue.xml > > new file mode 100644 > > index 0000000..13063d3 > > --- /dev/null > > +++ > > b/log4j-core/src/test/resources/BlockingQueueFactory-LinkedTransferQueue.xml > > @@ -0,0 +1,40 @@ > > +<?xml version="1.0" encoding="UTF-8"?> > > +<!-- > > + Licensed to the Apache Software Foundation (ASF) under one or more > > + contributor license agreements. See the NOTICE file distributed with > > + this work for additional information regarding copyright ownership. > > + The ASF licenses this file to You under the Apache License, Version 2.0 > > + (the "License"); you may not use this file except in compliance with > > + the License. You may obtain a copy of the License at > > + > > + http://www.apache.org/licenses/LICENSE-2.0 > > <http://www.apache.org/licenses/LICENSE-2.0> > > + > > + Unless required by applicable law or agreed to in writing, software > > + distributed under the License is distributed on an "AS IS" BASIS, > > + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > > + See the License for the specific language governing permissions and > > + limitations under the License. > > + > > +--> > > +<Configuration status="OFF" name="LinkedTransferQueueFactory"> > > + > > + <Appenders> > > + <Console name="STDOUT"> > > + <PatternLayout pattern="%m%n"/> > > + </Console> > > + <List name="List"> > > + <PatternLayout pattern="%C %M %m"/> > > + </List> > > + <Async name="Async" includeLocation="true" error-ref="STDOUT"> > > + <AppenderRef ref="List"/> > > + <LinkedTransferQueue/> > > + </Async> > > + </Appenders> > > + > > + <Loggers> > > + <Root level="debug"> > > + <AppenderRef ref="Async"/> > > + </Root> > > + </Loggers> > > + > > +</Configuration> > > \ No newline at end of file > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org > <mailto:log4j-dev-unsubscr...@logging.apache.org> > For additional commands, e-mail: log4j-dev-h...@logging.apache.org > <mailto:log4j-dev-h...@logging.apache.org> > > > > > -- > E-Mail: garydgreg...@gmail.com <mailto:garydgreg...@gmail.com> | > ggreg...@apache.org <mailto: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 <http://garygregory.wordpress.com/> > Home: http://garygregory.com/ <http://garygregory.com/> > Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>