You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by mi...@apache.org on 2016/03/22 12:58:12 UTC

[01/14] logging-log4j2 git commit: Code clean-up

Repository: logging-log4j2
Updated Branches:
  refs/heads/master 03910c65b -> a41326974


Code clean-up


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/e813d969
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/e813d969
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/e813d969

Branch: refs/heads/master
Commit: e813d969d247edaeed114063303f0f353c1ae692
Parents: 8cb7c5d
Author: Mikael Ståldal <mi...@magine.com>
Authored: Tue Feb 23 15:46:07 2016 +0100
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Tue Feb 23 15:46:07 2016 +0100

----------------------------------------------------------------------
 .../logging/log4j/core/layout/GelfLayout.java   | 68 +++++++++++---------
 1 file changed, 37 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/e813d969/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
index a19af64..8472876 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
@@ -72,7 +72,7 @@ import com.fasterxml.jackson.core.io.JsonStringEncoder;
 @Plugin(name = "GelfLayout", category = Node.CATEGORY, elementType = Layout.ELEMENT_TYPE, printObject = true)
 public final class GelfLayout extends AbstractStringLayout {
 
-    public static enum CompressionType {
+    public enum CompressionType {
 
         GZIP {
             @Override
@@ -131,24 +131,20 @@ public final class GelfLayout extends AbstractStringLayout {
         return new GelfLayout(host, additionalFields, compressionType, compressionThreshold);
     }
 
-    /**
-     * http://en.wikipedia.org/wiki/Syslog#Severity_levels
-     */
-    static int formatLevel(final Level level) {
-        return Severity.getSeverity(level).getCode();
+    @Override
+    public Map<String, String> getContentFormat() {
+        return Collections.emptyMap();
     }
 
-    static String formatThrowable(final Throwable throwable) {
-        // stack traces are big enough to provide a reasonably large initial capacity here
-        final StringWriter sw = new StringWriter(2048);
-        final PrintWriter pw = new PrintWriter(sw);
-        throwable.printStackTrace(pw);
-        pw.flush();
-        return sw.toString();
+    @Override
+    public String getContentType() {
+        return JsonLayout.CONTENT_TYPE + "; charset=" + this.getCharset();
     }
 
-    static String formatTimestamp(final long timeMillis) {
-        return new BigDecimal(timeMillis).divide(TIME_DIVISOR).toPlainString();
+    @Override
+    public byte[] toByteArray(final LogEvent event) {
+        final byte[] bytes = getBytes(toSerializable(event));
+        return bytes.length > compressionThreshold ? compress(bytes) : bytes;
     }
 
     private byte[] compress(final byte[] bytes) {
@@ -169,22 +165,6 @@ public final class GelfLayout extends AbstractStringLayout {
     }
 
     @Override
-    public Map<String, String> getContentFormat() {
-        return Collections.emptyMap();
-    }
-
-    @Override
-    public String getContentType() {
-        return JsonLayout.CONTENT_TYPE + "; charset=" + this.getCharset();
-    }
-
-    @Override
-    public byte[] toByteArray(final LogEvent event) {
-        final byte[] bytes = getBytes(toSerializable(event));
-        return bytes.length > compressionThreshold ? compress(bytes) : bytes;
-    }
-
-    @Override
     public String toSerializable(final LogEvent event) {
         final StringBuilder builder = getStringBuilder();
         final JsonStringEncoder jsonEncoder = JsonStringEncoder.getInstance();
@@ -222,4 +202,30 @@ public final class GelfLayout extends AbstractStringLayout {
     private String toNullSafeString(final String s) {
         return s == null ? Strings.EMPTY : s;
     }
+
+    /**
+     * Non-private to make it accessible from unit test.
+     */
+    static String formatTimestamp(final long timeMillis) {
+        return new BigDecimal(timeMillis).divide(TIME_DIVISOR).toPlainString();
+    }
+
+    /**
+     * http://en.wikipedia.org/wiki/Syslog#Severity_levels
+     */
+    private int formatLevel(final Level level) {
+        return Severity.getSeverity(level).getCode();
+    }
+
+    /**
+     * Non-private to make it accessible from unit test.
+     */
+    static String formatThrowable(final Throwable throwable) {
+        // stack traces are big enough to provide a reasonably large initial capacity here
+        final StringWriter sw = new StringWriter(2048);
+        final PrintWriter pw = new PrintWriter(sw);
+        throwable.printStackTrace(pw);
+        pw.flush();
+        return sw.toString();
+    }
 }


[08/14] logging-log4j2 git commit: Merge branch 'master' into gelf-layout-gc-free

Posted by mi...@apache.org.
Merge branch 'master' into gelf-layout-gc-free


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/821e6201
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/821e6201
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/821e6201

Branch: refs/heads/master
Commit: 821e6201d98cec8a6a0bcaa19d09540e1ea4e80b
Parents: 58152b7 cc37ea6
Author: Mikael Ståldal <mi...@magine.com>
Authored: Tue Mar 8 17:37:08 2016 +0100
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Tue Mar 8 17:37:08 2016 +0100

----------------------------------------------------------------------
 .../apache/logging/log4j/EventLoggerTest.java   |  2 +-
 .../apache/logging/log4j/LambdaLoggerTest.java  |  3 +--
 .../core/pattern/DatePatternConverterTest.java  |  2 +-
 .../apache/logging/log4j/junit/CleanFiles.java  |  2 +-
 .../log4j/test/appender/AlwaysFailAppender.java | 11 ++++------
 .../log4j/test/appender/DeadlockAppender.java   | 13 ++++--------
 .../log4j/test/appender/FailOnceAppender.java   | 13 ++++--------
 .../log4j/test/appender/InMemoryAppender.java   |  2 --
 .../log4j/test/appender/ListAppender.java       |  6 +-----
 .../test/appender/UsesLoggingAppender.java      | 22 +++++++-------------
 10 files changed, 24 insertions(+), 52 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/821e6201/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/ListAppender.java
----------------------------------------------------------------------
diff --cc log4j-core/src/test/java/org/apache/logging/log4j/test/appender/ListAppender.java
index cd9ec82,125f3d8..97ca15d
--- a/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/ListAppender.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/ListAppender.java
@@@ -44,11 -41,9 +44,9 @@@ import org.apache.logging.log4j.core.la
  @Plugin(name = "List", category = "Core", elementType = "appender", printObject = true)
  public class ListAppender extends AbstractAppender {
  
-     private static final long serialVersionUID = 1L;
- 
      // Use CopyOnWriteArrayList?
  
 -    private final List<LogEvent> events = new ArrayList<>();
 +    final List<LogEvent> events = new ArrayList<>();
  
      private final List<String> messages = new ArrayList<>();
  


[06/14] logging-log4j2 git commit: Merge branch 'master' into gelf-layout-gc-free

Posted by mi...@apache.org.
Merge branch 'master' into gelf-layout-gc-free


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/7467e5dc
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/7467e5dc
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/7467e5dc

Branch: refs/heads/master
Commit: 7467e5dc2066b1ab553c3744b389b09b0bc28516
Parents: 920cddd f1e5063
Author: Mikael Ståldal <mi...@magine.com>
Authored: Tue Mar 8 16:15:53 2016 +0100
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Tue Mar 8 16:15:53 2016 +0100

----------------------------------------------------------------------
 .../message/ReusableParameterizedMessage.java   |  23 ++-
 .../log4j/message/ParameterFormatterTest.java   | 193 +++++++++++++++++++
 .../ReusableParameterizedMessageTest.java       |  59 ++++++
 .../core/async/AsyncLoggerConfigDisruptor.java  |   6 +-
 .../log4j/core/async/RingBufferLogEvent.java    |   6 +-
 .../logging/log4j/core/impl/Log4jLogEvent.java  |  16 +-
 .../logging/log4j/core/net/SmtpManager.java     |   7 +-
 .../log4j/core/layout/PatternLayoutTest.java    |  67 +++++--
 8 files changed, 347 insertions(+), 30 deletions(-)
----------------------------------------------------------------------



[02/14] logging-log4j2 git commit: Refactor

Posted by mi...@apache.org.
Refactor


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/1c0de0ed
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/1c0de0ed
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/1c0de0ed

Branch: refs/heads/master
Commit: 1c0de0ed99fa54bc8f06816f1638a4843782742d
Parents: e813d96
Author: Mikael Ståldal <mi...@magine.com>
Authored: Thu Feb 25 11:23:53 2016 +0100
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Thu Feb 25 11:23:53 2016 +0100

----------------------------------------------------------------------
 .../logging/log4j/core/layout/GelfLayout.java   | 34 +++++++++++---------
 1 file changed, 19 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1c0de0ed/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
index 8472876..af38eb1 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
@@ -16,17 +16,7 @@
  */
 package org.apache.logging.log4j.core.layout;
 
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.math.BigDecimal;
-import java.nio.charset.StandardCharsets;
-import java.util.Collections;
-import java.util.Map;
-import java.util.zip.DeflaterOutputStream;
-import java.util.zip.GZIPOutputStream;
+import com.fasterxml.jackson.core.io.JsonStringEncoder;
 
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.core.Layout;
@@ -41,7 +31,17 @@ import org.apache.logging.log4j.core.util.KeyValuePair;
 import org.apache.logging.log4j.status.StatusLogger;
 import org.apache.logging.log4j.util.Strings;
 
-import com.fasterxml.jackson.core.io.JsonStringEncoder;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
+import java.util.Collections;
+import java.util.Map;
+import java.util.zip.DeflaterOutputStream;
+import java.util.zip.GZIPOutputStream;
 
 /**
  * Lays out events in the Graylog Extended Log Format (GELF) 1.1.
@@ -144,7 +144,7 @@ public final class GelfLayout extends AbstractStringLayout {
     @Override
     public byte[] toByteArray(final LogEvent event) {
         final byte[] bytes = getBytes(toSerializable(event));
-        return bytes.length > compressionThreshold ? compress(bytes) : bytes;
+        return compressionType != CompressionType.OFF && bytes.length > compressionThreshold ? compress(bytes) : bytes;
     }
 
     private byte[] compress(final byte[] bytes) {
@@ -166,7 +166,11 @@ public final class GelfLayout extends AbstractStringLayout {
 
     @Override
     public String toSerializable(final LogEvent event) {
-        final StringBuilder builder = getStringBuilder();
+        final StringBuilder text = toText(event, getStringBuilder());
+        return text.toString();
+    }
+
+    private StringBuilder toText(LogEvent event, StringBuilder builder) {
         final JsonStringEncoder jsonEncoder = JsonStringEncoder.getInstance();
         builder.append('{');
         builder.append("\"version\":\"1.1\",");
@@ -196,7 +200,7 @@ public final class GelfLayout extends AbstractStringLayout {
         builder.append("\"short_message\":\"").append(jsonEncoder.quoteAsString(toNullSafeString(event.getMessage().getFormattedMessage())))
                 .append(Q);
         builder.append('}');
-        return builder.toString();
+        return builder;
     }
 
     private String toNullSafeString(final String s) {


[07/14] logging-log4j2 git commit: Unit test for GelfLayout.encode

Posted by mi...@apache.org.
Unit test for GelfLayout.encode


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/58152b79
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/58152b79
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/58152b79

Branch: refs/heads/master
Commit: 58152b79b0c883ba6df57b06bbb4e2c96353232e
Parents: 7467e5d
Author: Mikael Ståldal <mi...@magine.com>
Authored: Tue Mar 8 17:34:43 2016 +0100
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Tue Mar 8 17:34:43 2016 +0100

----------------------------------------------------------------------
 .../log4j/core/layout/GelfLayoutTest.java       | 75 +++++++++++---------
 .../test/appender/EncodingListAppender.java     | 64 +++++++++++++++++
 .../log4j/test/appender/ListAppender.java       |  9 ++-
 3 files changed, 112 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/58152b79/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/GelfLayoutTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/GelfLayoutTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/GelfLayoutTest.java
index 2aa7eda..c82fa21 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/GelfLayoutTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/GelfLayoutTest.java
@@ -16,32 +16,28 @@
  */
 package org.apache.logging.log4j.core.layout;
 
-import static net.javacrumbs.jsonunit.JsonAssert.assertJsonEquals;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.List;
-import java.util.zip.GZIPInputStream;
-import java.util.zip.InflaterInputStream;
-
+import com.fasterxml.jackson.core.io.JsonStringEncoder;
 import org.apache.commons.io.IOUtils;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.ThreadContext;
-import org.apache.logging.log4j.core.Appender;
-import org.apache.logging.log4j.core.BasicConfigurationFactory;
-import org.apache.logging.log4j.core.LogEvent;
-import org.apache.logging.log4j.core.Logger;
-import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.core.*;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.layout.GelfLayout.CompressionType;
 import org.apache.logging.log4j.core.util.KeyValuePair;
+import org.apache.logging.log4j.test.appender.EncodingListAppender;
 import org.apache.logging.log4j.test.appender.ListAppender;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import com.fasterxml.jackson.core.io.JsonStringEncoder;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+import java.util.zip.GZIPInputStream;
+import java.util.zip.InflaterInputStream;
+
+import static net.javacrumbs.jsonunit.JsonAssert.assertJsonEquals;
 
 public class GelfLayoutTest {
     static ConfigurationFactory configFactory = new BasicConfigurationFactory();
@@ -85,18 +81,20 @@ public class GelfLayoutTest {
         final GelfLayout layout = GelfLayout.createLayout(HOSTNAME, new KeyValuePair[] {
                 new KeyValuePair(KEY1, VALUE1),
                 new KeyValuePair(KEY2, VALUE2), }, compressionType, 1024);
-        // ConsoleAppender appender = new ConsoleAppender("Console", layout);
         final ListAppender eventAppender = new ListAppender("Events", null, null, true, false);
         final ListAppender rawAppender = new ListAppender("Raw", null, layout, true, true);
         final ListAppender formattedAppender = new ListAppender("Formatted", null, layout, true, false);
+        final EncodingListAppender encodedAppender = new EncodingListAppender("Encoded", null, layout, false, true);
         eventAppender.start();
         rawAppender.start();
         formattedAppender.start();
+        encodedAppender.start();
 
         // set appenders on root and set level to debug
         root.addAppender(eventAppender);
         root.addAppender(rawAppender);
         root.addAppender(formattedAppender);
+        root.addAppender(encodedAppender);
         root.setLevel(Level.DEBUG);
 
         root.debug(LINE1);
@@ -116,6 +114,7 @@ public class GelfLayoutTest {
         final List<LogEvent> events = eventAppender.getEvents();
         final List<byte[]> raw = rawAppender.getData();
         final List<String> messages = formattedAppender.getMessages();
+        final List<byte[]> raw2 = encodedAppender.getData();
         final String threadName = Thread.currentThread().getName();
 
         //@formatter:off
@@ -148,42 +147,52 @@ public class GelfLayoutTest {
                 messages.get(1));
         //@formatter:on
         final byte[] compressed = raw.get(2);
+        final byte[] compressed2 = raw2.get(2);
         final ByteArrayInputStream bais = new ByteArrayInputStream(compressed);
-        InputStream inflaterStream = null;
+        final ByteArrayInputStream bais2 = new ByteArrayInputStream(compressed2);
+        InputStream inflaterStream;
+        InputStream inflaterStream2;
         switch (compressionType) {
         case GZIP:
             inflaterStream = new GZIPInputStream(bais);
+            inflaterStream2 = new GZIPInputStream(bais2);
             break;
         case ZLIB:
             inflaterStream = new InflaterInputStream(bais);
+            inflaterStream2 = new InflaterInputStream(bais2);
             break;
         case OFF:
             inflaterStream = bais;
+            inflaterStream2 = bais2;
             break;
         default:
             throw new IllegalStateException("Missing test case clause");
         }
         final byte[] uncompressed = IOUtils.toByteArray(inflaterStream);
+        final byte[] uncompressed2 = IOUtils.toByteArray(inflaterStream2);
         inflaterStream.close();
+        inflaterStream2.close();
         final String uncompressedString = new String(uncompressed, layout.getCharset());
+        final String uncompressedString2 = new String(uncompressed2, layout.getCharset());
         //@formatter:off
-        assertJsonEquals("{" +
-                        "\"version\": \"1.1\"," +
-                        "\"host\": \"" + HOSTNAME + "\"," +
-                        "\"timestamp\": " + GelfLayout.formatTimestamp(events.get(2).getTimeMillis()) + "," +
-                        "\"level\": 3," +
-                        "\"_thread\": \"" + threadName + "\"," +
-                        "\"_logger\": \"\"," +
-                        "\"short_message\": \"" + LINE3 + "\"," +
-                        "\"full_message\": \"" + String.valueOf(JsonStringEncoder.getInstance().quoteAsString(
-                                GelfLayout.formatThrowable(exception))) + "\"," +
-                        "\"_" + KEY1 + "\": \"" + VALUE1 + "\"," +
-                        "\"_" + KEY2 + "\": \"" + VALUE2 + "\"," +
-                        "\"_" + MDCKEY1 + "\": \"" + MDCVALUE1 + "\"," +
-                        "\"_" + MDCKEY2 + "\": \"" + MDCVALUE2 + "\"" +
-                        "}",
-                uncompressedString);
+        String expected = "{" +
+                "\"version\": \"1.1\"," +
+                "\"host\": \"" + HOSTNAME + "\"," +
+                "\"timestamp\": " + GelfLayout.formatTimestamp(events.get(2).getTimeMillis()) + "," +
+                "\"level\": 3," +
+                "\"_thread\": \"" + threadName + "\"," +
+                "\"_logger\": \"\"," +
+                "\"short_message\": \"" + LINE3 + "\"," +
+                "\"full_message\": \"" + String.valueOf(JsonStringEncoder.getInstance().quoteAsString(
+                GelfLayout.formatThrowable(exception))) + "\"," +
+                "\"_" + KEY1 + "\": \"" + VALUE1 + "\"," +
+                "\"_" + KEY2 + "\": \"" + VALUE2 + "\"," +
+                "\"_" + MDCKEY1 + "\": \"" + MDCVALUE1 + "\"," +
+                "\"_" + MDCKEY2 + "\": \"" + MDCVALUE2 + "\"" +
+                "}";
         //@formatter:on
+        assertJsonEquals(expected, uncompressedString);
+        assertJsonEquals(expected, uncompressedString2);
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/58152b79/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/EncodingListAppender.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/EncodingListAppender.java b/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/EncodingListAppender.java
new file mode 100644
index 0000000..810e18f
--- /dev/null
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/EncodingListAppender.java
@@ -0,0 +1,64 @@
+package org.apache.logging.log4j.test.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.layout.ByteBufferDestination;
+import org.apache.logging.log4j.core.layout.SerializedLayout;
+
+import java.io.Serializable;
+import java.nio.ByteBuffer;
+
+/**
+ * This appender is primarily used for testing. Use in a real environment is discouraged as the
+ * List could eventually grow to cause an OutOfMemoryError.
+ *
+ * This appender will use {@link Layout#encode(Object, ByteBufferDestination)} (and not {@link Layout#toByteArray(LogEvent)}).
+ */
+public class EncodingListAppender extends ListAppender {
+
+    public EncodingListAppender(String name) {
+        super(name);
+    }
+
+    public EncodingListAppender(String name, Filter filter, Layout<? extends Serializable> layout, boolean newline, boolean raw) {
+        super(name, filter, layout, newline, raw);
+    }
+
+    private class Destination implements ByteBufferDestination {
+        ByteBuffer byteBuffer = ByteBuffer.wrap(new byte[4096]);
+        @Override
+        public ByteBuffer getByteBuffer() {
+            return byteBuffer;
+        }
+
+        @Override
+        public ByteBuffer drain(final ByteBuffer buf) {
+            throw new IllegalStateException("Unexpected message larger than 4096 bytes");
+        }
+    }
+
+    @Override
+    public synchronized void append(final LogEvent event) {
+        final Layout<? extends Serializable> layout = getLayout();
+        if (layout == null) {
+            events.add(event);
+        } else if (layout instanceof SerializedLayout) {
+            Destination content = new Destination();
+            content.byteBuffer.put(layout.getHeader());
+            layout.encode(event, content);
+            content.getByteBuffer().rewind();
+            byte[] record = new byte[content.getByteBuffer().remaining()];
+            content.getByteBuffer().get(record);
+            data.add(record);
+        } else {
+            Destination content = new Destination();
+            layout.encode(event, content);
+            content.getByteBuffer().rewind();
+            byte[] record = new byte[content.getByteBuffer().remaining()];
+            content.getByteBuffer().get(record);
+            write(record);
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/58152b79/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/ListAppender.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/ListAppender.java b/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/ListAppender.java
index 05fa157..cd9ec82 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/ListAppender.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/ListAppender.java
@@ -36,6 +36,9 @@ import org.apache.logging.log4j.core.layout.SerializedLayout;
 /**
  * This appender is primarily used for testing. Use in a real environment is discouraged as the
  * List could eventually grow to cause an OutOfMemoryError.
+ *
+ * This appender will use {@link Layout#toByteArray(LogEvent)}.
+ *
  * @see org.apache.logging.log4j.junit.LoggerContextRule#getListAppender(String) ILC.getListAppender
  */
 @Plugin(name = "List", category = "Core", elementType = "appender", printObject = true)
@@ -45,11 +48,11 @@ public class ListAppender extends AbstractAppender {
 
     // Use CopyOnWriteArrayList?
 
-    private final List<LogEvent> events = new ArrayList<>();
+    final List<LogEvent> events = new ArrayList<>();
 
     private final List<String> messages = new ArrayList<>();
 
-    private final List<byte[]> data = new ArrayList<>();
+    final List<byte[]> data = new ArrayList<>();
 
     private final boolean newLine;
 
@@ -93,7 +96,7 @@ public class ListAppender extends AbstractAppender {
         }
     }
 
-    private void write(final byte[] bytes) {
+    void write(final byte[] bytes) {
         if (raw) {
             data.add(bytes);
             return;


[10/14] logging-log4j2 git commit: Merge branch 'master' into gelf-layout-gc-free

Posted by mi...@apache.org.
Merge branch 'master' into gelf-layout-gc-free


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/a5b00b33
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/a5b00b33
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/a5b00b33

Branch: refs/heads/master
Commit: a5b00b331330cd8993e037d55a7c1a6001215d53
Parents: a2b5ed0 e2a8652
Author: Mikael Ståldal <mi...@magine.com>
Authored: Fri Mar 11 15:23:10 2016 +0100
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Fri Mar 11 15:23:10 2016 +0100

----------------------------------------------------------------------
 log4j-1.2-api/pom.xml                           |   5 +
 .../config/Log4j1ConfigurationFactory.java      | 314 +++++++++++++++++++
 .../config/Log4j1ConfigurationFactoryTest.java  |  88 ++++++
 ...g4j-console-EnhancedPatternLayout.properties |  19 ++
 .../log4j-console-HtmlLayout.properties         |  18 ++
 .../log4j-console-PatternLayout.properties      |  19 ++
 .../log4j-console-SimpleLayout.properties       |  18 ++
 .../log4j-console-TTCCLayout.properties         |  18 ++
 .../log4j-console-XmlLayout.properties          |  18 ++
 .../logging/log4j/core/LoggerContext.java       |   2 +
 .../core/async/AsyncLoggerConfigDisruptor.java  |   4 +-
 .../log4j/core/async/AsyncLoggerDisruptor.java  |   4 +-
 .../logging/log4j/core/lookup/JndiLookup.java   |   2 +-
 .../pattern/EqualsReplacementConverter.java     |  48 ++-
 .../logging/log4j/core/LoggerUpdateTest.java    |  15 +
 .../rolling/RollingAppenderSizeTest.java        |  15 +-
 .../log4j/core/layout/PatternLayoutTest.java    |  22 ++
 .../log4j/core/lookup/JndiLookupTest.java       |  18 ++
 .../pattern/EqualsReplacementConverterTest.java |  63 +++-
 .../apache/logging/log4j/core/util/Compare.java | 134 --------
 .../log4j/web/Log4jWebInitializerImpl.java      |   5 +-
 .../log4j/web/appender/ServletAppender.java     |   4 +-
 src/changes/changes.xml                         |  17 +-
 src/site/xdoc/manual/configuration.xml.vm       |   4 +
 24 files changed, 696 insertions(+), 178 deletions(-)
----------------------------------------------------------------------



[05/14] logging-log4j2 git commit: GC free GelfLayout

Posted by mi...@apache.org.
GC free GelfLayout


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/920cddd4
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/920cddd4
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/920cddd4

Branch: refs/heads/master
Commit: 920cddd42f0f97975019c5a2ac466256078d6db8
Parents: 3110269
Author: Mikael Ståldal <mi...@magine.com>
Authored: Tue Mar 8 13:55:00 2016 +0100
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Tue Mar 8 13:55:00 2016 +0100

----------------------------------------------------------------------
 .../log4j/core/layout/AbstractStringLayout.java | 30 +++++++++++++++++++-
 .../logging/log4j/core/layout/GelfLayout.java   | 15 +++++++++-
 .../log4j/core/layout/PatternLayout.java        | 11 -------
 .../logging/log4j/core/util/StringEncoder.java  | 10 +++----
 4 files changed, 48 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/920cddd4/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java
index 607d965..a31df97 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java
@@ -17,6 +17,8 @@
 package org.apache.logging.log4j.core.layout;
 
 import java.io.UnsupportedEncodingException;
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 
@@ -56,7 +58,9 @@ public abstract class AbstractStringLayout extends AbstractLayout<String> implem
      */
     protected static final int DEFAULT_STRING_BUILDER_SIZE = 1024;
 
-    private final static ThreadLocal<StringBuilder> threadLocal = new ThreadLocal<>();
+    private static final ThreadLocal<StringBuilder> threadLocal = new ThreadLocal<>();
+
+    private static final ThreadLocal<TextEncoderHelper> textEncoderHelper = new ThreadLocal<>();
 
     /**
      * Returns a {@code StringBuilder} that this Layout implementation can use to write the formatted log event to.
@@ -72,6 +76,16 @@ public abstract class AbstractStringLayout extends AbstractLayout<String> implem
         result.setLength(0);
         return result;
     }
+
+    protected TextEncoderHelper getCachedTextEncoderHelper() {
+        TextEncoderHelper result = textEncoderHelper.get();
+        if (result == null) {
+            result = new TextEncoderHelper(getCharset());
+            textEncoderHelper.set(result);
+        }
+        return result;
+    }
+
     // LOG4J2-1151: If the built-in JDK 8 encoders are available we should use them.
     private static boolean isPreJava8() {
         final String version = System.getProperty("java.version");
@@ -147,6 +161,20 @@ public abstract class AbstractStringLayout extends AbstractLayout<String> implem
         }
     }
 
+    protected byte[] getBytes(final CharSequence cseq) {
+        if (useCustomEncoding) { // rely on branch prediction to eliminate this check if false
+            return StringEncoder.encodeSingleByteChars(cseq);
+        }
+        ByteBuffer byteBuffer = charset.encode(CharBuffer.wrap(cseq));
+        if (byteBuffer.hasArray()) {
+            return byteBuffer.array();
+        } else {
+            byte[] bytes = new byte[byteBuffer.remaining()];
+            byteBuffer.get(bytes);
+            return bytes;
+        }
+    }
+
     @Override
     public Charset getCharset() {
         return charset;

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/920cddd4/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
index f107eb2..de48431 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
@@ -37,6 +37,7 @@ 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.net.Severity;
+import org.apache.logging.log4j.core.util.Constants;
 import org.apache.logging.log4j.core.util.KeyValuePair;
 import org.apache.logging.log4j.status.StatusLogger;
 import org.apache.logging.log4j.util.Strings;
@@ -142,10 +143,22 @@ public final class GelfLayout extends AbstractStringLayout {
 
     @Override
     public byte[] toByteArray(final LogEvent event) {
-        final byte[] bytes = getBytes(toSerializable(event));
+        StringBuilder text = toText(event, getStringBuilder());
+        final byte[] bytes = getBytes(text);
         return compressionType != CompressionType.OFF && bytes.length > compressionThreshold ? compress(bytes) : bytes;
     }
 
+    @Override
+    public void encode(final LogEvent event, final ByteBufferDestination destination) {
+        if (!Constants.ENABLE_THREADLOCALS || compressionType != CompressionType.OFF) {
+            super.encode(event, destination);
+            return;
+        }
+        final StringBuilder text = toText(event, getStringBuilder());
+        final TextEncoderHelper helper = getCachedTextEncoderHelper();
+        helper.encodeText(text, destination);
+    }
+
     private byte[] compress(final byte[] bytes) {
         try {
             final ByteArrayOutputStream baos = new ByteArrayOutputStream(compressionThreshold / 8);

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/920cddd4/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java
index ea0ec79..e35e358 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java
@@ -77,8 +77,6 @@ public final class PatternLayout extends AbstractStringLayout {
     /** Key to identify pattern converters. */
     public static final String KEY = "Converter";
 
-    private static final ThreadLocal<TextEncoderHelper> textEncoderHelper = new ThreadLocal<>();
-
     /**
      * Conversion pattern.
      */
@@ -197,15 +195,6 @@ public final class PatternLayout extends AbstractStringLayout {
         return serializer.toSerializable(event, destination);
     }
 
-    private TextEncoderHelper getCachedTextEncoderHelper() {
-        TextEncoderHelper result = textEncoderHelper.get();
-        if (result == null) {
-            result = new TextEncoderHelper(getCharset());
-            textEncoderHelper.set(result);
-        }
-        return result;
-    }
-
     /**
      * Creates a PatternParser.
      * @param config The Configuration.

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/920cddd4/log4j-core/src/main/java/org/apache/logging/log4j/core/util/StringEncoder.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/StringEncoder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/StringEncoder.java
index 4f62208..a2011cb 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/StringEncoder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/StringEncoder.java
@@ -53,13 +53,13 @@ public final class StringEncoder {
     }
 
     /**
-     * Encodes the specified string by casting each character to a byte.
+     * Encodes the specified char sequence by casting each character to a byte.
      *
-     * @param s the string to encode
+     * @param s the char sequence to encode
      * @return the encoded String
      * @see <a href="https://issues.apache.org/jira/browse/LOG4J2-1151">LOG4J2-1151</a>
      */
-    public static byte[] encodeSingleByteChars(String s) {
+    public static byte[] encodeSingleByteChars(CharSequence s) {
         final int length = s.length();
         final byte[] result = new byte[length];
         encodeString(s, 0, length, result);
@@ -71,7 +71,7 @@ public final class StringEncoder {
      * Implementation note: this is the fast path. If the char array contains only ISO-8859-1 characters, all the work
      * will be done here.
      */
-    public static int encodeIsoChars(String charArray, int charIndex, byte[] byteArray, int byteIndex, int length) {
+    public static int encodeIsoChars(CharSequence charArray, int charIndex, byte[] byteArray, int byteIndex, int length) {
         int i = 0;
         for (; i < length; i++) {
             char c = charArray.charAt(charIndex++);
@@ -84,7 +84,7 @@ public final class StringEncoder {
     }
 
     // LOG4J2-1151
-    public static int encodeString(String charArray, int charOffset, int charLength, byte[] byteArray) {
+    public static int encodeString(CharSequence charArray, int charOffset, int charLength, byte[] byteArray) {
         int byteOffset = 0;
         int length = Math.min(charLength, byteArray.length);
         int charDoneIndex = charOffset + length;


[14/14] logging-log4j2 git commit: Fix imports

Posted by mi...@apache.org.
Fix imports


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/a4132697
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/a4132697
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/a4132697

Branch: refs/heads/master
Commit: a413269747c6b2c1c29277ca84b2b6d18f8328e4
Parents: 654212c
Author: Mikael Ståldal <mi...@magine.com>
Authored: Tue Mar 22 12:56:27 2016 +0100
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Tue Mar 22 12:56:27 2016 +0100

----------------------------------------------------------------------
 .../logging/log4j/core/layout/AbstractStringLayout.java   | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/a4132697/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java
index ce2b7b0..84dbd69 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java
@@ -16,12 +16,6 @@
  */
 package org.apache.logging.log4j.core.layout;
 
-import java.io.UnsupportedEncodingException;
-import java.nio.ByteBuffer;
-import java.nio.CharBuffer;
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
-
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.StringLayout;
 import org.apache.logging.log4j.core.config.Configuration;
@@ -29,6 +23,10 @@ import org.apache.logging.log4j.core.config.LoggerConfig;
 import org.apache.logging.log4j.core.util.StringEncoder;
 import org.apache.logging.log4j.util.Strings;
 
+import java.io.UnsupportedEncodingException;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+
 /**
  * Abstract base class for Layouts that result in a String.
  * <p>


[12/14] logging-log4j2 git commit: Remove untested code

Posted by mi...@apache.org.
Remove untested code


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/0df5b93f
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/0df5b93f
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/0df5b93f

Branch: refs/heads/master
Commit: 0df5b93f89c2df02be40ddb2cbddaa0e910e9897
Parents: 20b9009
Author: Mikael Ståldal <mi...@magine.com>
Authored: Tue Mar 22 12:54:30 2016 +0100
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Tue Mar 22 12:54:30 2016 +0100

----------------------------------------------------------------------
 .../log4j/core/layout/AbstractStringLayout.java | 20 +++++---------------
 .../logging/log4j/core/layout/GelfLayout.java   |  2 +-
 2 files changed, 6 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0df5b93f/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java
index a31df97..4d1e4c0 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java
@@ -77,6 +77,11 @@ public abstract class AbstractStringLayout extends AbstractLayout<String> implem
         return result;
     }
 
+    /**
+     * Returns a {@code TextEncoderHelper} that this Layout implementation can use for encoding log events.
+     *
+     * @return a {@code TextEncoderHelper}
+     */
     protected TextEncoderHelper getCachedTextEncoderHelper() {
         TextEncoderHelper result = textEncoderHelper.get();
         if (result == null) {
@@ -161,26 +166,11 @@ public abstract class AbstractStringLayout extends AbstractLayout<String> implem
         }
     }
 
-    protected byte[] getBytes(final CharSequence cseq) {
-        if (useCustomEncoding) { // rely on branch prediction to eliminate this check if false
-            return StringEncoder.encodeSingleByteChars(cseq);
-        }
-        ByteBuffer byteBuffer = charset.encode(CharBuffer.wrap(cseq));
-        if (byteBuffer.hasArray()) {
-            return byteBuffer.array();
-        } else {
-            byte[] bytes = new byte[byteBuffer.remaining()];
-            byteBuffer.get(bytes);
-            return bytes;
-        }
-    }
-
     @Override
     public Charset getCharset() {
         return charset;
     }
 
-
     /**
      * @return The default content type for Strings.
      */

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0df5b93f/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
index de48431..7942ebb 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
@@ -144,7 +144,7 @@ public final class GelfLayout extends AbstractStringLayout {
     @Override
     public byte[] toByteArray(final LogEvent event) {
         StringBuilder text = toText(event, getStringBuilder());
-        final byte[] bytes = getBytes(text);
+        final byte[] bytes = getBytes(text.toString());
         return compressionType != CompressionType.OFF && bytes.length > compressionThreshold ? compress(bytes) : bytes;
     }
 


[03/14] logging-log4j2 git commit: Merge branch 'master' into gelf-layout-gc-free

Posted by mi...@apache.org.
Merge branch 'master' into gelf-layout-gc-free


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/76fe804f
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/76fe804f
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/76fe804f

Branch: refs/heads/master
Commit: 76fe804f9aead3b1ed2ab62355c389d28b4c80d3
Parents: 1c0de0e db76923
Author: Mikael Ståldal <mi...@magine.com>
Authored: Tue Mar 8 11:23:16 2016 +0100
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Tue Mar 8 11:23:16 2016 +0100

----------------------------------------------------------------------
 log4j-1.2-api/src/site/xdoc/index.xml           |    3 +-
 .../org/apache/logging/log4j/MarkerManager.java |   49 +-
 .../log4j/message/ObjectArrayMessage.java       |    4 +-
 .../logging/log4j/message/ObjectMessage.java    |    6 +-
 .../log4j/message/ParameterFormatter.java       |  533 +++++++++
 .../log4j/message/ParameterizedMessage.java     |  619 ++--------
 .../message/ParameterizedMessageFactory.java    |    2 +-
 .../logging/log4j/message/ReusableMessage.java  |   33 +
 .../log4j/message/ReusableMessageFactory.java   |  123 ++
 .../log4j/message/ReusableObjectMessage.java    |   94 ++
 .../message/ReusableParameterizedMessage.java   |  245 ++++
 .../log4j/message/ReusableSimpleMessage.java    |   60 +
 .../logging/log4j/simple/SimpleLogger.java      |   10 +-
 .../logging/log4j/spi/AbstractLogger.java       |   37 +-
 .../apache/logging/log4j/util/LoaderUtil.java   |    2 +-
 .../logging/log4j/util/LowLevelLogUtil.java     |   67 ++
 .../log4j/util/PerformanceSensitive.java        |    4 +-
 .../logging/log4j/util/PropertiesUtil.java      |   34 +-
 .../java/org/apache/log4j/util/SerialUtil.java  |   65 -
 .../java/org/apache/log4j/util/StringsTest.java |   36 -
 .../logging/log4j/AbstractLoggerTest.java       |   18 +
 .../logging/log4j/LoggerSupplierTest.java       |   24 +-
 .../org/apache/logging/log4j/LoggerTest.java    | 1107 +++++++++---------
 .../java/org/apache/logging/log4j/Timer.java    |  184 ++-
 .../logging/log4j/junit/BundleTestInfo.java     |   66 ++
 .../org/apache/logging/log4j/junit/Mutable.java |   35 +
 .../apache/logging/log4j/junit/OsgiRule.java    |   68 ++
 .../apache/logging/log4j/junit/SerialUtil.java  |   65 +
 .../log4j/message/FormattedMessageTest.java     |    1 +
 .../log4j/message/LocalizedMessageTest.java     |    1 +
 .../log4j/message/MessageFormatMessageTest.java |    1 +
 .../apache/logging/log4j/message/Mutable.java   |   34 -
 .../log4j/message/ObjectMessageTest.java        |    3 +-
 .../log4j/message/ParameterizedMessageTest.java |   22 +-
 .../message/ReusableObjectMessageTest.java      |  122 ++
 .../message/ReusableSimpleMessageTest.java      |  122 ++
 .../message/StringFormattedMessageTest.java     |    1 +
 .../log4j/osgi/AbstractLoadBundleTest.java      |    2 +
 .../logging/log4j/osgi/BundleTestInfo.java      |   80 --
 .../org/apache/logging/log4j/osgi/OsgiRule.java |   69 --
 .../logging/log4j/util/PropertiesUtilTest.java  |   65 +
 .../logging/log4j/util/ReflectionUtilTest.java  |    2 +
 .../apache/logging/log4j/util/StringsTest.java  |    9 +
 .../resources/PropertiesUtilTest.properties     |   29 +
 .../logging/log4j/core/AbstractLifeCycle.java   |    6 +-
 .../logging/log4j/core/AbstractLogEvent.java    |   10 +
 .../org/apache/logging/log4j/core/Appender.java |    8 +
 .../org/apache/logging/log4j/core/Layout.java   |    3 +-
 .../org/apache/logging/log4j/core/LogEvent.java |   18 +-
 .../org/apache/logging/log4j/core/Logger.java   |   17 +
 .../logging/log4j/core/LoggerContext.java       |    1 -
 .../log4j/core/appender/AbstractAppender.java   |    2 -
 .../appender/AbstractOutputStreamAppender.java  |    2 -
 .../core/appender/AbstractWriterAppender.java   |    2 -
 .../log4j/core/appender/AsyncAppender.java      |    1 -
 .../log4j/core/appender/ConsoleAppender.java    |    3 +-
 .../core/appender/DefaultErrorHandler.java      |    5 +-
 .../log4j/core/appender/FailoverAppender.java   |    2 -
 .../log4j/core/appender/FileAppender.java       |    1 -
 .../core/appender/MemoryMappedFileAppender.java |    2 -
 .../core/appender/OutputStreamAppender.java     |    2 -
 .../core/appender/RandomAccessFileAppender.java |    2 -
 .../core/appender/RollingFileAppender.java      |    1 -
 .../RollingRandomAccessFileAppender.java        |    3 -
 .../log4j/core/appender/SmtpAppender.java       |    1 -
 .../log4j/core/appender/SocketAppender.java     |    2 -
 .../log4j/core/appender/SyslogAppender.java     |    1 -
 .../log4j/core/appender/WriterAppender.java     |    2 -
 .../appender/db/AbstractDatabaseAppender.java   |    1 -
 .../core/appender/db/jdbc/JdbcAppender.java     |    1 -
 .../db/jpa/AbstractLogEventWrapperEntity.java   |   20 +
 .../appender/db/jpa/BasicLogEventEntity.java    |   22 +
 .../log4j/core/appender/db/jpa/JpaAppender.java |   12 +-
 .../log4j/core/appender/mom/JmsAppender.java    |   11 +-
 .../log4j/core/appender/mom/JmsManager.java     |    2 +-
 .../appender/mom/jeromq/JeroMqAppender.java     |  234 +---
 .../core/appender/mom/jeromq/JeroMqManager.java |  220 ++++
 .../core/appender/mom/kafka/KafkaAppender.java  |   22 +-
 .../core/appender/mom/kafka/KafkaManager.java   |    4 +
 .../core/appender/rewrite/RewriteAppender.java  |    2 -
 .../rolling/DefaultRolloverStrategy.java        |    4 +-
 .../rolling/RollingRandomAccessFileManager.java |    2 +-
 .../action/PathSortByModificationTime.java      |    6 +-
 .../core/appender/routing/IdlePurgePolicy.java  |   99 +-
 .../core/appender/routing/RoutingAppender.java  |    3 +-
 .../core/async/AsyncEventRouterFactory.java     |   10 +-
 .../logging/log4j/core/async/AsyncLogger.java   |   24 +-
 .../log4j/core/async/AsyncLoggerConfig.java     |    6 +-
 .../log4j/core/async/AsyncLoggerContext.java    |    2 -
 .../logging/log4j/core/async/DisruptorUtil.java |    9 +-
 .../log4j/core/async/RingBufferLogEvent.java    |  104 +-
 .../async/RingBufferLogEventTranslator.java     |   28 +-
 .../core/async/ThreadNameCachingStrategy.java   |    5 +-
 .../core/config/AbstractConfiguration.java      |   41 +-
 .../log4j/core/config/AppenderControl.java      |    1 -
 .../core/config/AppenderControlArraySet.java    |    4 +
 .../log4j/core/config/ConfigurationAware.java   |   33 +
 .../core/config/ConfigurationScheduler.java     |    1 -
 .../core/config/ConfiguratonFileWatcher.java    |    4 +-
 .../log4j/core/config/CronScheduledFuture.java  |   12 +-
 .../log4j/core/config/DefaultAdvertiser.java    |    5 +-
 .../log4j/core/config/DefaultConfiguration.java |    2 -
 .../logging/log4j/core/config/LoggerConfig.java |   52 +-
 .../log4j/core/config/NullConfiguration.java    |    1 -
 .../log4j/core/config/OrderComparator.java      |    4 +-
 .../builder/api/AppenderComponentBuilder.java   |    9 +-
 .../api/AppenderRefComponentBuilder.java        |    9 +-
 .../api/CompositeFilterComponentBuilder.java    |   14 +-
 .../builder/api/FilterableComponentBuilder.java |   34 +
 .../builder/api/LoggableComponentBuilder.java   |   33 +
 .../builder/api/LoggerComponentBuilder.java     |   16 +-
 .../builder/api/RootLoggerComponentBuilder.java |   16 +-
 .../core/config/builder/api/package-info.java   |    2 +
 .../config/builder/impl/BuiltConfiguration.java |   17 +-
 .../impl/DefaultAppenderComponentBuilder.java   |    2 +
 .../DefaultAppenderRefComponentBuilder.java     |    2 +
 ...DefaultComponentAndConfigurationBuilder.java |    2 +
 .../builder/impl/DefaultComponentBuilder.java   |   22 +-
 .../DefaultCompositeFilterComponentBuilder.java |    2 +-
 .../impl/DefaultConfigurationBuilder.java       |   16 +-
 .../DefaultCustomLevelComponentBuilder.java     |    2 +-
 .../impl/DefaultFilterComponentBuilder.java     |    2 +-
 .../impl/DefaultLayoutComponentBuilder.java     |    2 +-
 .../impl/DefaultLoggerComponentBuilder.java     |    4 +-
 .../impl/DefaultRootLoggerComponentBuilder.java |    4 +-
 .../impl/DefaultScriptComponentBuilder.java     |    2 +-
 .../impl/DefaultScriptFileComponentBuilder.java |    2 +
 .../core/config/builder/impl/package-info.java  |    2 +
 .../core/config/json/JsonConfiguration.java     |  551 +++++----
 .../config/plugins/processor/PluginEntry.java   |    2 +-
 .../core/config/plugins/util/PluginBuilder.java |   11 +-
 .../properties/PropertiesConfiguration.java     |    6 +-
 .../PropertiesConfigurationBuilder.java         |  298 +++++
 .../PropertiesConfigurationFactory.java         |  378 +-----
 .../core/config/status/StatusConfiguration.java |    4 +-
 .../log4j/core/config/xml/XmlConfiguration.java |   16 +-
 .../core/config/yaml/YamlConfiguration.java     |    2 -
 .../log4j/core/filter/AbstractFilter.java       |    2 -
 .../log4j/core/filter/AbstractFilterable.java   |    2 -
 .../logging/log4j/core/filter/BurstFilter.java  |    7 +-
 .../log4j/core/filter/CompositeFilter.java      |    2 -
 .../core/filter/DynamicThresholdFilter.java     |    2 -
 .../log4j/core/filter/LevelRangeFilter.java     |    2 -
 .../logging/log4j/core/filter/MapFilter.java    |    2 -
 .../logging/log4j/core/filter/MarkerFilter.java |    2 -
 .../logging/log4j/core/filter/RegexFilter.java  |    2 -
 .../logging/log4j/core/filter/ScriptFilter.java |    1 -
 .../log4j/core/filter/StructuredDataFilter.java |    2 -
 .../core/filter/ThreadContextMapFilter.java     |    2 -
 .../log4j/core/filter/ThresholdFilter.java      |    2 -
 .../logging/log4j/core/filter/TimeFilter.java   |   37 +-
 .../logging/log4j/core/impl/Log4jLogEvent.java  |   96 +-
 .../log4j/core/jackson/LogEventMixIn.java       |   10 +
 .../apache/logging/log4j/core/jmx/Server.java   |    1 -
 .../log4j/core/layout/AbstractCsvLayout.java    |    1 -
 .../core/layout/AbstractJacksonLayout.java      |    1 -
 .../log4j/core/layout/AbstractLayout.java       |    4 +-
 .../log4j/core/layout/AbstractStringLayout.java |   18 +-
 .../log4j/core/layout/CsvLogEventLayout.java    |    4 +-
 .../log4j/core/layout/CsvParameterLayout.java   |    2 -
 .../logging/log4j/core/layout/GelfLayout.java   |    1 -
 .../logging/log4j/core/layout/HtmlLayout.java   |    1 -
 .../logging/log4j/core/layout/JsonLayout.java   |    2 -
 .../log4j/core/layout/PatternLayout.java        |    8 +-
 .../logging/log4j/core/layout/PatternMatch.java |   20 +-
 .../log4j/core/layout/Rfc5424Layout.java        |    2 -
 .../log4j/core/layout/SerializedLayout.java     |    2 -
 .../logging/log4j/core/layout/SyslogLayout.java |    2 -
 .../log4j/core/layout/TextEncoderHelper.java    |   19 +-
 .../logging/log4j/core/layout/XmlLayout.java    |    2 -
 .../AbstractConfigurationAwareLookup.java       |   35 +
 .../logging/log4j/core/lookup/Interpolator.java |    6 +-
 .../logging/log4j/core/lookup/Log4jLookup.java  |   60 +-
 .../logging/log4j/core/lookup/MapLookup.java    |    2 +-
 .../log4j/core/lookup/StrSubstitutor.java       |   19 +-
 .../apache/logging/log4j/core/net/Facility.java |  131 ++-
 .../log4j/core/net/MimeMessageBuilder.java      |   15 +-
 .../log4j/core/net/MulticastDnsAdvertiser.java  |   34 +-
 .../apache/logging/log4j/core/net/Severity.java |    2 +-
 .../logging/log4j/core/net/SmtpManager.java     |   10 +-
 .../log4j/core/net/SslSocketManager.java        |    2 +-
 .../core/net/mom/jms/AbstractJmsReceiver.java   |   48 +
 .../core/net/mom/jms/JmsQueueReceiver.java      |   45 +-
 .../core/net/mom/jms/JmsTopicReceiver.java      |   44 +-
 .../log4j/core/net/server/JmsServer.java        |   24 +
 .../logging/log4j/core/osgi/Activator.java      |    6 +-
 .../logging/log4j/core/pattern/AnsiEscape.java  |    2 +-
 .../core/pattern/DatePatternConverter.java      |    4 +-
 .../log4j/core/pattern/MaxLengthConverter.java  |  103 ++
 .../core/pattern/MessagePatternConverter.java   |   17 +
 .../log4j/core/pattern/NdcPatternConverter.java |   52 +-
 .../core/pattern/ThreadIdPatternConverter.java  |   61 +
 .../pattern/ThreadNamePatternConverter.java     |   59 +
 .../core/pattern/ThreadPatternConverter.java    |   59 -
 .../pattern/ThreadPriorityPatternConverter.java |   61 +
 .../util/DefaultShutdownCallbackRegistry.java   |    4 +-
 .../core/util/ExtensionLanguageMapping.java     |    8 +-
 .../logging/log4j/core/util/KeyValuePair.java   |   25 +-
 .../logging/log4j/core/util/ReflectionUtil.java |    4 +-
 .../logging/log4j/core/util/StringEncoder.java  |    2 +-
 .../logging/log4j/core/util/WatchManager.java   |   13 +-
 .../core/util/datetime/FixedDateFormat.java     |    6 +-
 log4j-core/src/main/resources/Log4j-events.dtd  |    4 +-
 log4j-core/src/main/resources/Log4j-events.xsd  |    2 +
 .../log4j/core/BasicConfigurationFactory.java   |    1 -
 .../apache/logging/log4j/core/LogEventTest.java |    2 +
 .../apache/logging/log4j/core/LoggerTest.java   |    5 +-
 .../log4j/core/TimestampMessageTest.java        |    7 +-
 .../MemoryMappedFileAppenderLocationTest.java   |    2 +-
 .../MemoryMappedFileAppenderRemapTest.java      |    2 +-
 .../MemoryMappedFileAppenderSimpleTest.java     |    2 +-
 ...ingRandomAccessFileAppenderRolloverTest.java |   13 +-
 .../log4j/core/appender/SmtpAppenderTest.java   |   24 +-
 .../db/AbstractDatabaseAppenderTest.java        |    2 -
 .../core/appender/db/jpa/JpaH2AppenderTest.java |    2 +-
 .../db/jpa/JpaHyperSqlAppenderTest.java         |    2 +-
 .../core/appender/db/jpa/TestBaseEntity.java    |   12 +
 .../appender/mom/jeromq/JeroMqAppenderTest.java |   18 +-
 .../appender/rolling/PatternProcessorTest.java  |    1 -
 ...ollingAppenderNoUnconditionalDeleteTest.java |   22 +-
 .../routing/PropertiesRoutingAppenderTest.java  |    1 +
 .../appender/routing/RoutingAppenderTest.java   |    1 +
 .../routing/RoutingAppenderWithPurgingTest.java |   13 +-
 .../routing/RoutingDefaultAppenderTest.java     |    1 +
 .../core/async/RingBufferLogEventTest.java      |   10 +-
 .../async/perftest/CountingNoOpAppender.java    |   52 +
 .../log4j/core/async/perftest/PerfTest.java     |    8 +-
 .../core/async/perftest/PerfTestDriver.java     |    2 +-
 .../async/perftest/PerfTestResultFormatter.java |    4 +-
 .../core/async/perftest/SimplePerfTest.bat      |   20 +
 .../core/async/perftest/SimplePerfTest.java     |   88 ++
 .../log4j/core/async/perftest/SimplePerfTest.sh |   22 +
 .../log4j/core/config/ConfigurationTest.java    |    3 +-
 .../core/config/CustomConfigurationTest.java    |    2 +-
 ...DynamicThresholdFilterSerializationTest.java |   47 -
 .../log4j/core/impl/Log4jLogEventTest.java      |    3 +-
 .../core/layout/SerializableLayoutTest.java     |   66 --
 .../log4j/core/lookup/Log4jLookupTest.java      |   32 +-
 .../core/lookup/Log4jLookupWithSpacesTest.java  |   16 +-
 .../log4j/core/lookup/MapLookupTest.java        |   25 +
 .../log4j/core/net/server/ThreadIdFilter.java   |   40 +
 .../log4j/core/net/server/ThreadNameFilter.java |    3 +
 .../core/net/server/ThreadPriorityFilter.java   |   40 +
 .../core/pattern/MaxLengthConverterTest.java    |   73 ++
 .../log4j/core/pattern/PatternParserTest.java   |   60 +
 .../pattern/ThreadIdPatternConverterTest.java   |   39 +
 .../pattern/ThreadNamePatternConverterTest.java |   39 +
 .../ThreadPriorityPatternConverterTest.java     |   39 +
 .../log4j/core/util/CronExpressionTest.java     |    1 -
 .../util/KeyValuePairSerializationTest.java     |   39 -
 .../log4j/core/util/PropertiesUtilTest.java     |   42 -
 .../log4j/core/util/WatchManagerTest.java       |    8 +-
 .../apache/logging/log4j/junit/CleanFiles.java  |   15 +-
 .../log4j/test/appender/AlwaysFailAppender.java |    2 -
 .../logging/log4j/test/layout/BasicLayout.java  |    1 -
 .../log4j/test/layout/SerializableLayout.java   |   48 -
 .../src/test/resources/JeroMqAppenderTest.xml   |    3 +-
 .../src/test/resources/log4j-routing.properties |    9 -
 .../log4j-scriptFile-filters.properties         |    8 -
 .../src/test/resources/log4j-test1.properties   |   58 +
 .../log4j2-properties-root-only.properties      |    6 -
 .../test/resources/log4j2-properties.properties |    9 -
 .../resources/perf-CountingNoOpAppender.xml     |   12 +
 .../log4j/flume/appender/FlumeAppender.java     |    1 -
 .../log4j/flume/appender/FlumeEvent.java        |   18 +
 log4j-flume-ng/src/site/xdoc/index.xml.vm       |    1 +
 log4j-iostreams/src/site/xdoc/index.xml         |    1 +
 .../logging/log4j/io/AbstractStreamTest.java    |    2 +-
 log4j-jcl/src/site/xdoc/index.xml               |    3 +-
 log4j-jmx-gui/src/site/xdoc/index.xml           |    3 +-
 .../log4j/jul/DefaultLevelConverter.java        |    4 +-
 log4j-jul/src/site/xdoc/index.xml               |    1 +
 .../logging/log4j/jul/AbstractLoggerTest.java   |    4 +-
 log4j-liquibase/src/site/xdoc/index.xml         |    3 +-
 .../log4j/nosql/appender/NoSqlAppender.java     |    1 -
 .../nosql/appender/NoSqlDatabaseManager.java    |    2 +
 log4j-nosql/src/site/xdoc/index.xml.vm          |    1 +
 .../appender/NoSqlDatabaseManagerTest.java      |    6 +
 .../log4j/perf/jmh/CollectionsBenchmark.java    |   12 +-
 .../log4j/perf/jmh/LoggerConfigBenchmark.java   |    8 +-
 .../perf/jmh/ParameterizedMessageBenchmark.java |  289 +----
 .../ParameterizedMessageInliningBenchmark.java  |  332 ++++++
 .../perf/jmh/TextEncoderHelperBenchmark.java    |  243 ++++
 .../perf/jmh/ThreadLocalVsPoolBenchmark.java    |    2 +-
 .../logging/log4j/perf/nogc/AbstractLogger.java |    3 +-
 .../logging/log4j/perf/nogc/DemoAppender.java   |    3 +-
 .../logging/log4j/perf/nogc/NoGcLayout.java     |    7 +-
 .../logging/log4j/perf/nogc/NoGcLogger.java     |    2 +-
 .../logging/log4j/perf/nogc/NoGcMessage.java    |    6 +-
 .../perf/nogc/NoGcMessagePatternConverter.java  |    3 -
 .../log4j/perf/nogc/ParameterizedMessage.java   |  757 ++++++++++++
 .../CustomConfigurationFactory.java             |    2 -
 .../configuration/CustomConfigurationTest.java  |    2 +-
 .../org/apache/logging/slf4j/Log4jLogger.java   |    3 +-
 log4j-slf4j-impl/src/site/xdoc/index.xml        |    3 +-
 .../org/apache/logging/slf4j/Log4j1222Test.java |    1 -
 log4j-taglib/src/site/xdoc/index.xml            |    3 +-
 .../logging/log4j/taglib/CatchingTagTest.java   |    6 +-
 .../logging/log4j/taglib/EnterTagTest.java      |   79 ++
 .../logging/log4j/taglib/EntryTagTest.java      |   79 --
 .../slf4j/SLF4JLoggerContextFactory.java        |    3 +-
 log4j-to-slf4j/src/site/xdoc/index.xml          |    7 +-
 .../log4j/web/Log4jServletContextListener.java  |    3 +-
 .../log4j/web/Log4jWebInitializerImpl.java      |    2 -
 .../log4j/web/appender/ServletAppender.java     |    2 -
 log4j-web/src/site/xdoc/index.xml               |    3 +-
 .../web/Log4jServletContextListenerTest.java    |   11 -
 pom.xml                                         |    2 +-
 src/changes/changes.xml                         |   45 +
 src/site/xdoc/manual/configuration.xml.vm       |   20 +-
 src/site/xdoc/manual/layouts.xml.vm             |   66 +-
 311 files changed, 7190 insertions(+), 3979 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76fe804f/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
----------------------------------------------------------------------


[09/14] logging-log4j2 git commit: Use ByteBuffer properly

Posted by mi...@apache.org.
Use ByteBuffer properly


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/a2b5ed02
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/a2b5ed02
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/a2b5ed02

Branch: refs/heads/master
Commit: a2b5ed02f6b31de9926f9db3e0094a543e490c11
Parents: 821e620
Author: Mikael Ståldal <mi...@magine.com>
Authored: Wed Mar 9 10:06:13 2016 +0100
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Wed Mar 9 10:06:13 2016 +0100

----------------------------------------------------------------------
 .../apache/logging/log4j/test/appender/EncodingListAppender.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/a2b5ed02/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/EncodingListAppender.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/EncodingListAppender.java b/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/EncodingListAppender.java
index 810e18f..2e93a1c 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/EncodingListAppender.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/EncodingListAppender.java
@@ -47,14 +47,14 @@ public class EncodingListAppender extends ListAppender {
             Destination content = new Destination();
             content.byteBuffer.put(layout.getHeader());
             layout.encode(event, content);
-            content.getByteBuffer().rewind();
+            content.getByteBuffer().flip();
             byte[] record = new byte[content.getByteBuffer().remaining()];
             content.getByteBuffer().get(record);
             data.add(record);
         } else {
             Destination content = new Destination();
             layout.encode(event, content);
-            content.getByteBuffer().rewind();
+            content.getByteBuffer().flip();
             byte[] record = new byte[content.getByteBuffer().remaining()];
             content.getByteBuffer().get(record);
             write(record);


[04/14] logging-log4j2 git commit: Revert imports

Posted by mi...@apache.org.
Revert imports


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/31102698
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/31102698
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/31102698

Branch: refs/heads/master
Commit: 31102698018370d888b703f304a2a8f54915c9c2
Parents: 76fe804
Author: Mikael Ståldal <mi...@magine.com>
Authored: Tue Mar 8 11:27:30 2016 +0100
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Tue Mar 8 11:27:30 2016 +0100

----------------------------------------------------------------------
 .../logging/log4j/core/layout/GelfLayout.java   | 24 ++++++++++----------
 1 file changed, 12 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/31102698/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
index 2301936..f107eb2 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
@@ -16,7 +16,17 @@
  */
 package org.apache.logging.log4j.core.layout;
 
-import com.fasterxml.jackson.core.io.JsonStringEncoder;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
+import java.util.Collections;
+import java.util.Map;
+import java.util.zip.DeflaterOutputStream;
+import java.util.zip.GZIPOutputStream;
 
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.core.Layout;
@@ -31,17 +41,7 @@ import org.apache.logging.log4j.core.util.KeyValuePair;
 import org.apache.logging.log4j.status.StatusLogger;
 import org.apache.logging.log4j.util.Strings;
 
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.math.BigDecimal;
-import java.nio.charset.StandardCharsets;
-import java.util.Collections;
-import java.util.Map;
-import java.util.zip.DeflaterOutputStream;
-import java.util.zip.GZIPOutputStream;
+import com.fasterxml.jackson.core.io.JsonStringEncoder;
 
 /**
  * Lays out events in the Graylog Extended Log Format (GELF) 1.1.


[11/14] logging-log4j2 git commit: Merge branch 'master' into gelf-layout-gc-free

Posted by mi...@apache.org.
Merge branch 'master' into gelf-layout-gc-free


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/20b90093
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/20b90093
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/20b90093

Branch: refs/heads/master
Commit: 20b90093151b0df7b405666232e0f59b7c91f450
Parents: a5b00b3 03910c6
Author: Mikael Ståldal <mi...@magine.com>
Authored: Tue Mar 22 11:29:38 2016 +0100
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Tue Mar 22 11:29:38 2016 +0100

----------------------------------------------------------------------
 .../org/apache/logging/log4j/LogManager.java    |   4 +-
 .../logging/log4j/spi/AbstractLogger.java       |  11 +-
 log4j-core/pom.xml                              |   6 +
 .../log4j/core/appender/AsyncAppender.java      |   5 +-
 .../rolling/DefaultRolloverStrategy.java        | 186 ++++++++++---------
 .../log4j/core/async/AsyncEventRouter.java      |   7 +-
 .../core/async/AsyncEventRouterFactory.java     |  44 ++---
 .../logging/log4j/core/async/AsyncLogger.java   | 165 +++++++---------
 .../log4j/core/async/AsyncLoggerConfig.java     |   6 +-
 .../core/async/AsyncLoggerConfigDelegate.java   |   2 +
 .../core/async/AsyncLoggerConfigDisruptor.java  |  10 +-
 .../log4j/core/async/AsyncLoggerDisruptor.java  |   8 +-
 .../core/async/DefaultAsyncEventRouter.java     |   5 +-
 .../core/async/DiscardingAsyncEventRouter.java  |  35 +---
 .../logging/log4j/core/async/EventRoute.java    |   4 +-
 .../log4j/core/async/RingBufferLogEvent.java    |  21 ++-
 .../async/RingBufferLogEventTranslator.java     |  53 ++----
 .../log4j/core/filter/CompositeFilter.java      |  76 ++++----
 .../logging/log4j/core/lookup/JndiLookup.java   |   5 +-
 .../core/pattern/ClassNamePatternConverter.java |   2 +-
 .../core/pattern/LoggerPatternConverter.java    |   2 +-
 .../log4j/core/pattern/NameAbbreviator.java     |  53 +++---
 .../core/pattern/NamePatternConverter.java      |   7 +-
 .../log4j/core/util/ObjectArrayIterator.java    | 179 ++++++++++++++++++
 .../log4j/core/CustomLevelsWithFiltersTest.java |   8 +-
 .../logging/log4j/core/GcFreeLoggingTest.java   | 131 +++++++++++++
 .../core/async/AsyncEventRouterFactoryTest.java |  57 +-----
 .../core/async/DefaultAsyncEventRouterTest.java |  25 +--
 .../async/DiscardingAsyncEventRouterTest.java   |  79 +++-----
 .../log4j/core/async/perftest/SimplePerfTest.sh |  32 +++-
 .../log4j/core/pattern/NameAbbreviatorTest.java |  14 +-
 .../appender/FlumeEmbeddedAppenderTest.java     |  10 +-
 log4j-jmx-gui/pom.xml                           |   4 +-
 pom.xml                                         |   8 +-
 src/changes/changes.xml                         |   8 +-
 src/site/xdoc/manual/async.xml                  |   8 +-
 src/site/xdoc/manual/configuration.xml.vm       |  28 +--
 src/site/xdoc/manual/migration.xml              |  24 ++-
 38 files changed, 795 insertions(+), 537 deletions(-)
----------------------------------------------------------------------



[13/14] logging-log4j2 git commit: Make TextEncoder cache an instance field since it depends on Charset

Posted by mi...@apache.org.
Make TextEncoder cache an instance field since it depends on Charset


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/654212c0
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/654212c0
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/654212c0

Branch: refs/heads/master
Commit: 654212c04bf1f7d4c576753aab334d23fd8f705c
Parents: 0df5b93
Author: Mikael Ståldal <mi...@magine.com>
Authored: Tue Mar 22 12:55:04 2016 +0100
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Tue Mar 22 12:55:04 2016 +0100

----------------------------------------------------------------------
 .../org/apache/logging/log4j/core/layout/AbstractStringLayout.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/654212c0/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java
index 4d1e4c0..ce2b7b0 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java
@@ -60,7 +60,7 @@ public abstract class AbstractStringLayout extends AbstractLayout<String> implem
 
     private static final ThreadLocal<StringBuilder> threadLocal = new ThreadLocal<>();
 
-    private static final ThreadLocal<TextEncoderHelper> textEncoderHelper = new ThreadLocal<>();
+    private final ThreadLocal<TextEncoderHelper> textEncoderHelper = new ThreadLocal<>();
 
     /**
      * Returns a {@code StringBuilder} that this Layout implementation can use to write the formatted log event to.