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 2016/08/31 17:41:26 UTC
[02/13] logging-log4j2 git commit: Use AbstractManager.close()
instead of deprecated release().
Use AbstractManager.close() instead of deprecated release().
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/1ba19a0b
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/1ba19a0b
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/1ba19a0b
Branch: refs/heads/master
Commit: 1ba19a0b72fbdda59200ad008cb3b8509ecda7df
Parents: b73c589
Author: Gary Gregory <gg...@apache.org>
Authored: Sun Aug 28 12:52:14 2016 -0700
Committer: Gary Gregory <gg...@apache.org>
Committed: Sun Aug 28 12:52:14 2016 -0700
----------------------------------------------------------------------
.../log4j/core/appender/AbstractManager.java | 32 +-
.../appender/AbstractOutputStreamAppender.java | 2 +-
.../core/appender/AbstractWriterAppender.java | 2 +-
.../appender/db/AbstractDatabaseAppender.java | 4 +-
.../appender/db/AbstractDatabaseManager.java | 2 +-
.../log4j/core/appender/mom/JmsAppender.java | 2 +-
.../log4j/core/appender/mom/JmsManager.java | 2 +-
.../appender/mom/jeromq/JeroMqAppender.java | 362 +++++++++----------
.../core/appender/mom/kafka/KafkaAppender.java | 2 +-
.../logging/log4j/core/lookup/JndiLookup.java | 2 +-
.../log4j/core/net/server/JmsServer.java | 2 +-
.../core/selector/JndiContextSelector.java | 2 +-
.../appender/MemoryMappedFileManagerTest.java | 4 +-
.../db/AbstractDatabaseAppenderTest.java | 10 +-
.../db/jdbc/AbstractJdbcAppenderTest.java | 2 +-
.../db/jpa/AbstractJpaAppenderTest.java | 2 +-
.../log4j/core/appender/mom/JmsAppenderIT.java | 2 +-
.../rolling/OnStartupTriggeringPolicyTest.java | 2 +-
.../log4j/flume/appender/FlumeAppender.java | 2 +-
.../appender/NoSqlDatabaseManagerTest.java | 12 +-
.../log4j/perf/jmh/JdbcAppenderBenchmark.java | 4 +-
.../log4j/perf/jmh/JpaAppenderBenchmark.java | 4 +-
22 files changed, 235 insertions(+), 225 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ba19a0b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractManager.java
index 4d7fc69..9e78df5 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractManager.java
@@ -59,6 +59,24 @@ public abstract class AbstractManager {
}
/**
+ * Called to signify that this Manager is no longer required by an Appender.
+ */
+ public void close() {
+ LOCK.lock();
+ try {
+ --count;
+ if (count <= 0) {
+ MAP.remove(name);
+ LOGGER.debug("Shutting down {} {}", this.getClass().getSimpleName(), getName());
+ releaseSub();
+ }
+ } finally {
+ LOCK.unlock();
+ }
+ }
+
+
+ /**
* Retrieves a Manager if it has been previously created or creates a new Manager.
* @param name The name of the Manager to retrieve.
* @param factory The Factory to use to create the Manager.
@@ -133,19 +151,11 @@ public abstract class AbstractManager {
/**
* Called to signify that this Manager is no longer required by an Appender.
+ * @deprecated Use {@link #close()}.
*/
+ @Deprecated
public void release() {
- LOCK.lock();
- try {
- --count;
- if (count <= 0) {
- MAP.remove(name);
- LOGGER.debug("Shutting down {} {}", this.getClass().getSimpleName(), getName());
- releaseSub();
- }
- } finally {
- LOCK.unlock();
- }
+ close();
}
/**
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ba19a0b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java
index 67e835a..3e14d84 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java
@@ -108,7 +108,7 @@ public abstract class AbstractOutputStreamAppender<M extends OutputStreamManager
@Override
public void stop() {
super.stop();
- manager.release();
+ manager.close();
}
/**
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ba19a0b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractWriterAppender.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractWriterAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractWriterAppender.java
index 18152fd..4e2b835 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractWriterAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractWriterAppender.java
@@ -117,6 +117,6 @@ public abstract class AbstractWriterAppender<M extends WriterManager> extends Ab
@Override
public void stop() {
super.stop();
- manager.release();
+ manager.close();
}
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ba19a0b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseAppender.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseAppender.java
index 326d47f..959df1f 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseAppender.java
@@ -93,7 +93,7 @@ public abstract class AbstractDatabaseAppender<T extends AbstractDatabaseManager
public final void stop() {
super.stop();
if (this.getManager() != null) {
- this.getManager().release();
+ this.getManager().close();
}
}
@@ -130,7 +130,7 @@ public abstract class AbstractDatabaseAppender<T extends AbstractDatabaseManager
manager.startup();
}
this.manager = manager;
- old.release();
+ old.close();
} finally {
this.writeLock.unlock();
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ba19a0b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseManager.java
index c3682dc..4457008 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseManager.java
@@ -78,7 +78,7 @@ public abstract class AbstractDatabaseManager extends AbstractManager implements
protected abstract void shutdownInternal() throws Exception;
/**
- * This method is called from the {@link #release()} method when the appender is stopped or the appender's manager
+ * This method is called from the {@link #close()} method when the appender is stopped or the appender's manager
* is replaced. If it has not already been called, it calls {@link #shutdownInternal()} and catches any exceptions
* it might throw.
*/
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ba19a0b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsAppender.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsAppender.java
index 7484ca1..b470a38 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsAppender.java
@@ -70,7 +70,7 @@ public class JmsAppender extends AbstractAppender {
@Override
public void stop() {
- this.manager.release();
+ this.manager.close();
super.stop();
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ba19a0b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsManager.java
index 7cf1637..1df23ec 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsManager.java
@@ -132,7 +132,7 @@ public class JmsManager extends AbstractManager {
this.connection.close();
} catch (final JMSException ignored) {
}
- this.jndiManager.release();
+ this.jndiManager.close();
}
private static class JmsConfiguration {
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ba19a0b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqAppender.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqAppender.java
index 9f2fa41..064ed2c 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqAppender.java
@@ -1,181 +1,181 @@
-/*
- * 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
- *
- * 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.
- */
-
-package org.apache.logging.log4j.core.appender.mom.jeromq;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
-
-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.appender.AbstractAppender;
-import org.apache.logging.log4j.core.config.Node;
-import org.apache.logging.log4j.core.config.Property;
-import org.apache.logging.log4j.core.config.plugins.Plugin;
-import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
-import org.apache.logging.log4j.core.config.plugins.PluginElement;
-import org.apache.logging.log4j.core.config.plugins.PluginFactory;
-import org.apache.logging.log4j.core.config.plugins.validation.constraints.Required;
-import org.apache.logging.log4j.core.layout.PatternLayout;
-import org.apache.logging.log4j.util.Strings;
-
-/**
- * Sends log events to one or more ZeroMQ (JeroMQ) endpoints.
- * <p>
- * Requires the JeroMQ jar (LGPL as of 0.3.5)
- * </p>
- */
-// TODO
-// Some methods are synchronized because a ZMQ.Socket is not thread-safe
-// Using a ThreadLocal for the publisher hangs tests on shutdown. There must be
-// some issue on threads owning certain resources as opposed to others.
-@Plugin(name = "JeroMQ", category = Node.CATEGORY, elementType = Appender.ELEMENT_TYPE, printObject = true)
-public final class JeroMqAppender extends AbstractAppender {
-
- private static final int DEFAULT_BACKLOG = 100;
-
- private static final int DEFAULT_IVL = 100;
-
- private static final int DEFAULT_RCV_HWM = 1000;
-
- private static final int DEFAULT_SND_HWM = 1000;
-
- private final JeroMqManager manager;
- private final List<String> endpoints;
- private int sendRcFalse;
- private int sendRcTrue;
-
- private JeroMqAppender(final String name, final Filter filter, final Layout<? extends Serializable> layout,
- final boolean ignoreExceptions, final List<String> endpoints, final long affinity, final long backlog,
- final boolean delayAttachOnConnect, final byte[] identity, final boolean ipv4Only, final long linger,
- final long maxMsgSize, final long rcvHwm, final long receiveBufferSize, final int receiveTimeOut,
- final long reconnectIVL, final long reconnectIVLMax, final long sendBufferSize, final int sendTimeOut,
- final long sndHWM, final int tcpKeepAlive, final long tcpKeepAliveCount, final long tcpKeepAliveIdle,
- final long tcpKeepAliveInterval, final boolean xpubVerbose) {
- super(name, filter, layout, ignoreExceptions);
- this.manager = JeroMqManager.getJeroMqManager(name, affinity, backlog, delayAttachOnConnect, identity, ipv4Only,
- linger, maxMsgSize, rcvHwm, receiveBufferSize, receiveTimeOut, reconnectIVL, reconnectIVLMax,
- sendBufferSize, sendTimeOut, sndHWM, tcpKeepAlive, tcpKeepAliveCount, tcpKeepAliveIdle,
- tcpKeepAliveInterval, xpubVerbose, endpoints);
- this.endpoints = endpoints;
- }
-
- // The ZMQ.Socket class has other set methods that we do not cover because
- // they throw unsupported operation exceptions.
- @PluginFactory
- public static JeroMqAppender createAppender(
- // @formatter:off
- @Required(message = "No name provided for JeroMqAppender") @PluginAttribute("name") final String name,
- @PluginElement("Layout") Layout<?> layout,
- @PluginElement("Filter") final Filter filter,
- @PluginElement("Properties") final Property[] properties,
- // Super attributes
- @PluginAttribute("ignoreExceptions") final boolean ignoreExceptions,
- // ZMQ attributes; defaults picked from zmq.Options.
- @PluginAttribute(value = "affinity", defaultLong = 0) final long affinity,
- @PluginAttribute(value = "backlog", defaultLong = DEFAULT_BACKLOG) final long backlog,
- @PluginAttribute(value = "delayAttachOnConnect", defaultBoolean = false) final boolean delayAttachOnConnect,
- @PluginAttribute(value = "identity") final byte[] identity,
- @PluginAttribute(value = "ipv4Only", defaultBoolean = true) final boolean ipv4Only,
- @PluginAttribute(value = "linger", defaultLong = -1) final long linger,
- @PluginAttribute(value = "maxMsgSize", defaultLong = -1) final long maxMsgSize,
- @PluginAttribute(value = "rcvHwm", defaultLong = DEFAULT_RCV_HWM) final long rcvHwm,
- @PluginAttribute(value = "receiveBufferSize", defaultLong = 0) final long receiveBufferSize,
- @PluginAttribute(value = "receiveTimeOut", defaultLong = -1) final int receiveTimeOut,
- @PluginAttribute(value = "reconnectIVL", defaultLong = DEFAULT_IVL) final long reconnectIVL,
- @PluginAttribute(value = "reconnectIVLMax", defaultLong = 0) final long reconnectIVLMax,
- @PluginAttribute(value = "sendBufferSize", defaultLong = 0) final long sendBufferSize,
- @PluginAttribute(value = "sendTimeOut", defaultLong = -1) final int sendTimeOut,
- @PluginAttribute(value = "sndHwm", defaultLong = DEFAULT_SND_HWM) final long sndHwm,
- @PluginAttribute(value = "tcpKeepAlive", defaultInt = -1) final int tcpKeepAlive,
- @PluginAttribute(value = "tcpKeepAliveCount", defaultLong = -1) final long tcpKeepAliveCount,
- @PluginAttribute(value = "tcpKeepAliveIdle", defaultLong = -1) final long tcpKeepAliveIdle,
- @PluginAttribute(value = "tcpKeepAliveInterval", defaultLong = -1) final long tcpKeepAliveInterval,
- @PluginAttribute(value = "xpubVerbose", defaultBoolean = false) final boolean xpubVerbose
- // @formatter:on
- ) {
- if (layout == null) {
- layout = PatternLayout.createDefaultLayout();
- }
- List<String> endpoints;
- if (properties == null) {
- endpoints = new ArrayList<>(0);
- } else {
- endpoints = new ArrayList<>(properties.length);
- for (final Property property : properties) {
- if ("endpoint".equalsIgnoreCase(property.getName())) {
- final String value = property.getValue();
- if (Strings.isNotEmpty(value)) {
- endpoints.add(value);
- }
- }
- }
- }
- LOGGER.debug("Creating JeroMqAppender with name={}, filter={}, layout={}, ignoreExceptions={}, endpoints={}",
- name, filter, layout, ignoreExceptions, endpoints);
- return new JeroMqAppender(name, filter, layout, ignoreExceptions, endpoints, affinity, backlog,
- delayAttachOnConnect, identity, ipv4Only, linger, maxMsgSize, rcvHwm, receiveBufferSize,
- receiveTimeOut, reconnectIVL, reconnectIVLMax, sendBufferSize, sendTimeOut, sndHwm, tcpKeepAlive,
- tcpKeepAliveCount, tcpKeepAliveIdle, tcpKeepAliveInterval, xpubVerbose);
- }
-
- @Override
- public synchronized void append(final LogEvent event) {
- final Layout<? extends Serializable> layout = getLayout();
- final byte[] formattedMessage = layout.toByteArray(event);
- if (manager.send(getLayout().toByteArray(event))) {
- sendRcTrue++;
- } else {
- sendRcFalse++;
- LOGGER.error("Appender {} could not send message {} to JeroMQ {}", getName(), sendRcFalse, formattedMessage);
- }
- }
-
- @Override
- public void stop() {
- manager.release();
- super.stop();
- }
-
- // not public, handy for testing
- int getSendRcFalse() {
- return sendRcFalse;
- }
-
- // not public, handy for testing
- int getSendRcTrue() {
- return sendRcTrue;
- }
-
- // not public, handy for testing
- void resetSendRcs() {
- sendRcTrue = sendRcFalse = 0;
- }
-
- @Override
- public String toString() {
- return "JeroMqAppender{" +
- "name=" + getName() +
- ", state=" + getState() +
- ", manager=" + manager +
- ", endpoints=" + endpoints +
- '}';
- }
-}
+/*
+ * 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
+ *
+ * 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.
+ */
+
+package org.apache.logging.log4j.core.appender.mom.jeromq;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+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.appender.AbstractAppender;
+import org.apache.logging.log4j.core.config.Node;
+import org.apache.logging.log4j.core.config.Property;
+import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
+import org.apache.logging.log4j.core.config.plugins.PluginElement;
+import org.apache.logging.log4j.core.config.plugins.PluginFactory;
+import org.apache.logging.log4j.core.config.plugins.validation.constraints.Required;
+import org.apache.logging.log4j.core.layout.PatternLayout;
+import org.apache.logging.log4j.util.Strings;
+
+/**
+ * Sends log events to one or more ZeroMQ (JeroMQ) endpoints.
+ * <p>
+ * Requires the JeroMQ jar (LGPL as of 0.3.5)
+ * </p>
+ */
+// TODO
+// Some methods are synchronized because a ZMQ.Socket is not thread-safe
+// Using a ThreadLocal for the publisher hangs tests on shutdown. There must be
+// some issue on threads owning certain resources as opposed to others.
+@Plugin(name = "JeroMQ", category = Node.CATEGORY, elementType = Appender.ELEMENT_TYPE, printObject = true)
+public final class JeroMqAppender extends AbstractAppender {
+
+ private static final int DEFAULT_BACKLOG = 100;
+
+ private static final int DEFAULT_IVL = 100;
+
+ private static final int DEFAULT_RCV_HWM = 1000;
+
+ private static final int DEFAULT_SND_HWM = 1000;
+
+ private final JeroMqManager manager;
+ private final List<String> endpoints;
+ private int sendRcFalse;
+ private int sendRcTrue;
+
+ private JeroMqAppender(final String name, final Filter filter, final Layout<? extends Serializable> layout,
+ final boolean ignoreExceptions, final List<String> endpoints, final long affinity, final long backlog,
+ final boolean delayAttachOnConnect, final byte[] identity, final boolean ipv4Only, final long linger,
+ final long maxMsgSize, final long rcvHwm, final long receiveBufferSize, final int receiveTimeOut,
+ final long reconnectIVL, final long reconnectIVLMax, final long sendBufferSize, final int sendTimeOut,
+ final long sndHWM, final int tcpKeepAlive, final long tcpKeepAliveCount, final long tcpKeepAliveIdle,
+ final long tcpKeepAliveInterval, final boolean xpubVerbose) {
+ super(name, filter, layout, ignoreExceptions);
+ this.manager = JeroMqManager.getJeroMqManager(name, affinity, backlog, delayAttachOnConnect, identity, ipv4Only,
+ linger, maxMsgSize, rcvHwm, receiveBufferSize, receiveTimeOut, reconnectIVL, reconnectIVLMax,
+ sendBufferSize, sendTimeOut, sndHWM, tcpKeepAlive, tcpKeepAliveCount, tcpKeepAliveIdle,
+ tcpKeepAliveInterval, xpubVerbose, endpoints);
+ this.endpoints = endpoints;
+ }
+
+ // The ZMQ.Socket class has other set methods that we do not cover because
+ // they throw unsupported operation exceptions.
+ @PluginFactory
+ public static JeroMqAppender createAppender(
+ // @formatter:off
+ @Required(message = "No name provided for JeroMqAppender") @PluginAttribute("name") final String name,
+ @PluginElement("Layout") Layout<?> layout,
+ @PluginElement("Filter") final Filter filter,
+ @PluginElement("Properties") final Property[] properties,
+ // Super attributes
+ @PluginAttribute("ignoreExceptions") final boolean ignoreExceptions,
+ // ZMQ attributes; defaults picked from zmq.Options.
+ @PluginAttribute(value = "affinity", defaultLong = 0) final long affinity,
+ @PluginAttribute(value = "backlog", defaultLong = DEFAULT_BACKLOG) final long backlog,
+ @PluginAttribute(value = "delayAttachOnConnect", defaultBoolean = false) final boolean delayAttachOnConnect,
+ @PluginAttribute(value = "identity") final byte[] identity,
+ @PluginAttribute(value = "ipv4Only", defaultBoolean = true) final boolean ipv4Only,
+ @PluginAttribute(value = "linger", defaultLong = -1) final long linger,
+ @PluginAttribute(value = "maxMsgSize", defaultLong = -1) final long maxMsgSize,
+ @PluginAttribute(value = "rcvHwm", defaultLong = DEFAULT_RCV_HWM) final long rcvHwm,
+ @PluginAttribute(value = "receiveBufferSize", defaultLong = 0) final long receiveBufferSize,
+ @PluginAttribute(value = "receiveTimeOut", defaultLong = -1) final int receiveTimeOut,
+ @PluginAttribute(value = "reconnectIVL", defaultLong = DEFAULT_IVL) final long reconnectIVL,
+ @PluginAttribute(value = "reconnectIVLMax", defaultLong = 0) final long reconnectIVLMax,
+ @PluginAttribute(value = "sendBufferSize", defaultLong = 0) final long sendBufferSize,
+ @PluginAttribute(value = "sendTimeOut", defaultLong = -1) final int sendTimeOut,
+ @PluginAttribute(value = "sndHwm", defaultLong = DEFAULT_SND_HWM) final long sndHwm,
+ @PluginAttribute(value = "tcpKeepAlive", defaultInt = -1) final int tcpKeepAlive,
+ @PluginAttribute(value = "tcpKeepAliveCount", defaultLong = -1) final long tcpKeepAliveCount,
+ @PluginAttribute(value = "tcpKeepAliveIdle", defaultLong = -1) final long tcpKeepAliveIdle,
+ @PluginAttribute(value = "tcpKeepAliveInterval", defaultLong = -1) final long tcpKeepAliveInterval,
+ @PluginAttribute(value = "xpubVerbose", defaultBoolean = false) final boolean xpubVerbose
+ // @formatter:on
+ ) {
+ if (layout == null) {
+ layout = PatternLayout.createDefaultLayout();
+ }
+ List<String> endpoints;
+ if (properties == null) {
+ endpoints = new ArrayList<>(0);
+ } else {
+ endpoints = new ArrayList<>(properties.length);
+ for (final Property property : properties) {
+ if ("endpoint".equalsIgnoreCase(property.getName())) {
+ final String value = property.getValue();
+ if (Strings.isNotEmpty(value)) {
+ endpoints.add(value);
+ }
+ }
+ }
+ }
+ LOGGER.debug("Creating JeroMqAppender with name={}, filter={}, layout={}, ignoreExceptions={}, endpoints={}",
+ name, filter, layout, ignoreExceptions, endpoints);
+ return new JeroMqAppender(name, filter, layout, ignoreExceptions, endpoints, affinity, backlog,
+ delayAttachOnConnect, identity, ipv4Only, linger, maxMsgSize, rcvHwm, receiveBufferSize,
+ receiveTimeOut, reconnectIVL, reconnectIVLMax, sendBufferSize, sendTimeOut, sndHwm, tcpKeepAlive,
+ tcpKeepAliveCount, tcpKeepAliveIdle, tcpKeepAliveInterval, xpubVerbose);
+ }
+
+ @Override
+ public synchronized void append(final LogEvent event) {
+ final Layout<? extends Serializable> layout = getLayout();
+ final byte[] formattedMessage = layout.toByteArray(event);
+ if (manager.send(getLayout().toByteArray(event))) {
+ sendRcTrue++;
+ } else {
+ sendRcFalse++;
+ LOGGER.error("Appender {} could not send message {} to JeroMQ {}", getName(), sendRcFalse, formattedMessage);
+ }
+ }
+
+ @Override
+ public void stop() {
+ manager.close();
+ super.stop();
+ }
+
+ // not public, handy for testing
+ int getSendRcFalse() {
+ return sendRcFalse;
+ }
+
+ // not public, handy for testing
+ int getSendRcTrue() {
+ return sendRcTrue;
+ }
+
+ // not public, handy for testing
+ void resetSendRcs() {
+ sendRcTrue = sendRcFalse = 0;
+ }
+
+ @Override
+ public String toString() {
+ return "JeroMqAppender{" +
+ "name=" + getName() +
+ ", state=" + getState() +
+ ", manager=" + manager +
+ ", endpoints=" + endpoints +
+ '}';
+ }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ba19a0b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppender.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppender.java
index 81879e7..fa7f7e0 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppender.java
@@ -102,7 +102,7 @@ public final class KafkaAppender extends AbstractAppender {
@Override
public void stop() {
super.stop();
- manager.release();
+ manager.close();
}
@Override
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ba19a0b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/JndiLookup.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/JndiLookup.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/JndiLookup.java
index 3ceed5d..35c4f9d 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/JndiLookup.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/JndiLookup.java
@@ -58,7 +58,7 @@ public class JndiLookup extends AbstractLookup {
LOGGER.warn(LOOKUP, "Error looking up JNDI resource [{}].", jndiName, e);
return null;
} finally {
- jndiManager.release();
+ jndiManager.close();
}
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ba19a0b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/JmsServer.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/JmsServer.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/JmsServer.java
index 74a3834..c68b067 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/JmsServer.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/JmsServer.java
@@ -104,7 +104,7 @@ public class JmsServer extends LogEventListener implements MessageListener, Life
} catch (final JMSException e) {
LOGGER.debug("Exception closing {}", messageConsumer, e);
}
- jmsManager.release();
+ jmsManager.close();
}
@Override
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ba19a0b/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/JndiContextSelector.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/JndiContextSelector.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/JndiContextSelector.java
index b563c8d..87709f0 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/JndiContextSelector.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/JndiContextSelector.java
@@ -114,7 +114,7 @@ public class JndiContextSelector implements NamedContextSelector {
} catch (final NamingException ne) {
LOGGER.error("Unable to lookup {}", Constants.JNDI_CONTEXT_NAME, ne);
} finally {
- jndiManager.release();
+ jndiManager.close();
}
return loggingContextName == null ? CONTEXT : locateContext(loggingContextName, null, configLocation);
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ba19a0b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/MemoryMappedFileManagerTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/MemoryMappedFileManagerTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/MemoryMappedFileManagerTest.java
index 4b06b52..5838fb0 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/MemoryMappedFileManagerTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/MemoryMappedFileManagerTest.java
@@ -54,7 +54,7 @@ public class MemoryMappedFileManagerTest {
manager.write(msg, 0, msg.length, false);
}
- manager.release();
+ manager.close();
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
String line = reader.readLine();
@@ -87,7 +87,7 @@ public class MemoryMappedFileManagerTest {
isAppend, isForce, MemoryMappedFileManager.DEFAULT_REGION_LENGTH, null, null);
manager.write(new byte[initialLength], 0, initialLength);
- manager.release();
+ manager.close();
final int expected = initialLength * 2;
assertEquals("appended, not overwritten", expected, file.length());
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ba19a0b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseAppenderTest.java
index a558460..d7f955d 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseAppenderTest.java
@@ -33,7 +33,7 @@ public class AbstractDatabaseAppenderTest {
this.manager = createMockBuilder(LocalAbstractDatabaseManager.class)
.withConstructor(String.class, int.class)
.withArgs(name, 0)
- .addMockedMethod("release")
+ .addMockedMethod("close")
.createStrictMock();
this.appender = createMockBuilder(LocalAbstractDatabaseAppender.class)
@@ -79,7 +79,7 @@ public class AbstractDatabaseAppenderTest {
verify(this.manager, this.appender);
reset(this.manager, this.appender);
- this.manager.release();
+ this.manager.close();
expectLastCall();
replay(this.manager, this.appender);
@@ -98,10 +98,10 @@ public class AbstractDatabaseAppenderTest {
verify(this.manager, this.appender);
reset(this.manager, this.appender);
- this.manager.release();
+ this.manager.close();
expectLastCall();
final LocalAbstractDatabaseManager newManager = createMockBuilder(LocalAbstractDatabaseManager.class)
- .withConstructor(String.class, int.class).withArgs("name", 0).addMockedMethod("release")
+ .withConstructor(String.class, int.class).withArgs("name", 0).addMockedMethod("close")
.createStrictMock();
newManager.startupInternal();
expectLastCall();
@@ -111,7 +111,7 @@ public class AbstractDatabaseAppenderTest {
verify(this.manager, this.appender, newManager);
reset(this.manager, this.appender, newManager);
- newManager.release();
+ newManager.close();
expectLastCall();
replay(this.manager, this.appender, newManager);
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ba19a0b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/AbstractJdbcAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/AbstractJdbcAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/AbstractJdbcAppenderTest.java
index 2d5f6ce..2b73c01 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/AbstractJdbcAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/AbstractJdbcAppenderTest.java
@@ -77,7 +77,7 @@ public abstract class AbstractJdbcAppenderTest {
final Appender appender = context.getConfiguration().getAppender("databaseAppender");
assertNotNull("The appender should not be null.", appender);
assertTrue("The appender should be a JdbcAppender.", appender instanceof JdbcAppender);
- ((JdbcAppender) appender).getManager().release();
+ ((JdbcAppender) appender).getManager().close();
} finally {
System.clearProperty(ConfigurationFactory.CONFIGURATION_FILE_PROPERTY);
context.reconfigure();
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ba19a0b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/AbstractJpaAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/AbstractJpaAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/AbstractJpaAppenderTest.java
index 8fb2aaa..8d8f5f7 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/AbstractJpaAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/AbstractJpaAppenderTest.java
@@ -62,7 +62,7 @@ public abstract class AbstractJpaAppenderTest {
final Appender appender = context.getConfiguration().getAppender("databaseAppender");
assertNotNull("The appender should not be null.", appender);
assertTrue("The appender should be a JpaAppender.", appender instanceof JpaAppender);
- ((JpaAppender) appender).getManager().release();
+ ((JpaAppender) appender).getManager().close();
} finally {
System.clearProperty(ConfigurationFactory.CONFIGURATION_FILE_PROPERTY);
context.reconfigure();
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ba19a0b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/JmsAppenderIT.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/JmsAppenderIT.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/JmsAppenderIT.java
index 58f4f63..069a20c 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/JmsAppenderIT.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/JmsAppenderIT.java
@@ -63,7 +63,7 @@ public class JmsAppenderIT {
@AfterClass
public static void tearDownClass() {
- jmsManager.release();
+ jmsManager.close();
}
@Before
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ba19a0b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/OnStartupTriggeringPolicyTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/OnStartupTriggeringPolicyTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/OnStartupTriggeringPolicyTest.java
index 4ab6b5b..8a6864f 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/OnStartupTriggeringPolicyTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/OnStartupTriggeringPolicyTest.java
@@ -87,7 +87,7 @@ public class OnStartupTriggeringPolicyTest {
assertTrue("Missing: " + rolled.toString() + ", files on disk = " + files, Files.exists(rolled));
assertEquals(rolled.toString(), size, Files.size(rolled));
} finally {
- manager.release();
+ manager.close();
}
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ba19a0b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAppender.java
----------------------------------------------------------------------
diff --git a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAppender.java b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAppender.java
index 2141681..874ac54 100644
--- a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAppender.java
+++ b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAppender.java
@@ -108,7 +108,7 @@ public final class FlumeAppender extends AbstractAppender implements FlumeEventF
@Override
public void stop() {
super.stop();
- manager.release();
+ manager.close();
}
/**
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ba19a0b/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/NoSqlDatabaseManagerTest.java
----------------------------------------------------------------------
diff --git a/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/NoSqlDatabaseManagerTest.java b/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/NoSqlDatabaseManagerTest.java
index 152b584..8d5b7a0 100644
--- a/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/NoSqlDatabaseManagerTest.java
+++ b/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/NoSqlDatabaseManagerTest.java
@@ -90,7 +90,7 @@ public class NoSqlDatabaseManagerTest {
manager.commitAndClose();
} finally {
try {
- manager.release();
+ manager.close();
} catch (final Throwable ignore) {
/* */
}
@@ -120,7 +120,7 @@ public class NoSqlDatabaseManagerTest {
verify(event);
} finally {
try {
- manager.release();
+ manager.close();
} catch (final Throwable ignore) {
/* */
}
@@ -158,7 +158,7 @@ public class NoSqlDatabaseManagerTest {
}
} finally {
try {
- manager.release();
+ manager.close();
} catch (final Throwable ignore) {
/* */
}
@@ -247,7 +247,7 @@ public class NoSqlDatabaseManagerTest {
verify(this.provider, this.connection, event, message);
} finally {
try {
- manager.release();
+ manager.close();
} catch (final Throwable ignore) {
/* */
}
@@ -384,7 +384,7 @@ public class NoSqlDatabaseManagerTest {
verify(this.provider, this.connection, event, message);
} finally {
try {
- manager.release();
+ manager.close();
} catch (final Throwable ignore) {
/* */
}
@@ -583,7 +583,7 @@ public class NoSqlDatabaseManagerTest {
verify(this.provider, this.connection, event, message);
} finally {
try {
- manager.release();
+ manager.close();
} catch (final Throwable ignore) {
/* */
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ba19a0b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JdbcAppenderBenchmark.java
----------------------------------------------------------------------
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JdbcAppenderBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JdbcAppenderBenchmark.java
index 4f475b1..62e6218 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JdbcAppenderBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JdbcAppenderBenchmark.java
@@ -136,8 +136,8 @@ public class JdbcAppenderBenchmark {
public void tearDown() throws SQLException {
final LoggerContext context = LoggerContext.getContext(false);
try {
- ((JdbcAppender) context.getConfiguration().getAppender("H2Appender")).getManager().release();
- ((JdbcAppender) context.getConfiguration().getAppender("HSQLDBAppender")).getManager().release();
+ ((JdbcAppender) context.getConfiguration().getAppender("H2Appender")).getManager().close();
+ ((JdbcAppender) context.getConfiguration().getAppender("HSQLDBAppender")).getManager().close();
} finally {
System.clearProperty(ConfigurationFactory.CONFIGURATION_FILE_PROPERTY);
// context.reconfigure();
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1ba19a0b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JpaAppenderBenchmark.java
----------------------------------------------------------------------
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JpaAppenderBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JpaAppenderBenchmark.java
index 6267232..462b74a 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JpaAppenderBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JpaAppenderBenchmark.java
@@ -134,8 +134,8 @@ public class JpaAppenderBenchmark {
public void tearDown() throws SQLException {
final LoggerContext context = LoggerContext.getContext(false);
try {
- ((JpaAppender) context.getConfiguration().getAppender("H2Appender")).getManager().release();
- ((JpaAppender) context.getConfiguration().getAppender("HSQLDBAppender")).getManager().release();
+ ((JpaAppender) context.getConfiguration().getAppender("H2Appender")).getManager().close();
+ ((JpaAppender) context.getConfiguration().getAppender("HSQLDBAppender")).getManager().close();
} finally {
System.clearProperty(ConfigurationFactory.CONFIGURATION_FILE_PROPERTY);
// context.reconfigure();