You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2013/01/14 20:21:54 UTC
svn commit: r1433065 -
/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/AsynchAppender.java
Author: ggregory
Date: Mon Jan 14 19:21:54 2013
New Revision: 1433065
URL: http://svn.apache.org/viewvc?rev=1433065&view=rev
Log:
Generics. Javadoc.
Modified:
logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/AsynchAppender.java
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/AsynchAppender.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/AsynchAppender.java?rev=1433065&r1=1433064&r2=1433065&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/AsynchAppender.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/AsynchAppender.java Mon Jan 14 19:21:54 2013
@@ -18,6 +18,7 @@ package org.apache.logging.log4j.core.ap
import org.apache.logging.log4j.core.Appender;
import org.apache.logging.log4j.core.Filter;
+import org.apache.logging.log4j.core.Layout;
import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.config.AppenderControl;
import org.apache.logging.log4j.core.config.AppenderRef;
@@ -38,12 +39,14 @@ import java.util.concurrent.ArrayBlockin
import java.util.concurrent.BlockingQueue;
/**
- * Appender to write to one or more Appenders asynchronously. The AsynchAppender can be configrued with one
- * or more Appenders and an Appender to write to if the queue is full. The AsynchAppender does not allow
- * filter to be specified on the Appender references.
+ * Appends to one or more Appenders asynchronously. You can configure an AsynchAppender with one
+ * or more Appenders and an Appender to append to if the queue is full. The AsynchAppender does not allow
+ * a filter to be specified on the Appender references.
+ *
+ * @param <T> The {@link Layout}'s {@link Serializable} type.
*/
@Plugin(name = "Asynch", type = "Core", elementType = "appender", printObject = true)
-public final class AsynchAppender extends AbstractAppender {
+public final class AsynchAppender<T extends Serializable> extends AbstractAppender<T> {
private static final int DEFAULT_QUEUE_SIZE = 128;
private static final String SHUTDOWN = "Shutdown";
@@ -53,7 +56,7 @@ public final class AsynchAppender extend
private final Configuration config;
private final AppenderRef[] appenderRefs;
private final String errorRef;
- private AppenderControl errorAppender;
+ private AppenderControl<T> errorAppender;
private AsynchThread thread;
private AsynchAppender(final String name, final Filter filter, final AppenderRef[] appenderRefs, final String errorRef,
@@ -80,7 +83,7 @@ public final class AsynchAppender extend
}
if (errorRef != null) {
if (map.containsKey(errorRef)) {
- errorAppender = new AppenderControl(map.get(errorRef), null, null);
+ errorAppender = new AppenderControl<T>(map.get(errorRef), null, null);
} else {
LOGGER.error("Unable to set up error Appender. No appender named {} was configured", errorRef);
}
@@ -147,7 +150,7 @@ public final class AsynchAppender extend
* @return The AsynchAppender.
*/
@PluginFactory
- public static AsynchAppender createAppender(@PluginElement("appender-ref") final AppenderRef[] appenderRefs,
+ public static <S extends Serializable> AsynchAppender<S> createAppender(@PluginElement("appender-ref") final AppenderRef[] appenderRefs,
@PluginAttr("error-ref") final String errorRef,
@PluginAttr("blocking") final String blocking,
@PluginAttr("bufferSize") final String size,
@@ -168,7 +171,7 @@ public final class AsynchAppender extend
final boolean handleExceptions = suppress == null ? true : Boolean.valueOf(suppress);
- return new AsynchAppender(name, filter, appenderRefs, errorRef, queueSize, isBlocking, handleExceptions,
+ return new AsynchAppender<S>(name, filter, appenderRefs, errorRef, queueSize, isBlocking, handleExceptions,
config);
}