You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rg...@apache.org on 2015/10/11 23:06:20 UTC

[10/27] logging-log4j2 git commit: LOG4J2-935 Performance improvement converting Strings to byte[] arrays.

LOG4J2-935 Performance improvement converting Strings to byte[] arrays.


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

Branch: refs/heads/LOG4J2-1136
Commit: 6630dd75c70ca74245e226466306b4f7cc63dba5
Parents: 8b070ed
Author: rpopma <rp...@apache.org>
Authored: Mon Oct 5 01:44:05 2015 +0200
Committer: Ralph Goers <rg...@nextiva.com>
Committed: Sun Oct 11 12:40:43 2015 -0700

----------------------------------------------------------------------
 .../log4j/core/layout/AbstractStringLayout.java   | 18 +++++++++++++++---
 src/changes/changes.xml                           |  3 +++
 2 files changed, 18 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/6630dd75/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 cd10881..3a5d39b 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,6 +16,7 @@
  */
 package org.apache.logging.log4j.core.layout;
 
+import java.io.UnsupportedEncodingException;
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 
@@ -40,6 +41,7 @@ public abstract class AbstractStringLayout extends AbstractLayout<String> {
      */
     // TODO: Charset is not serializable. Implement read/writeObject() ?
     private final Charset charset;
+    private final String charsetName;
 
     protected AbstractStringLayout(final Charset charset) {
         this(charset, null, null);
@@ -48,6 +50,7 @@ public abstract class AbstractStringLayout extends AbstractLayout<String> {
     protected AbstractStringLayout(final Charset charset, final byte[] header, final byte[] footer) {
         super(header, footer);
         this.charset = charset == null ? StandardCharsets.UTF_8 : charset;
+        this.charsetName = this.charset.name();
     }
 
     /**
@@ -59,7 +62,12 @@ public abstract class AbstractStringLayout extends AbstractLayout<String> {
      */
     static byte[] toBytes(final String str, final Charset charset) {
         if (str != null) {
-            return str.getBytes(charset != null ? charset : Charset.defaultCharset());
+            final Charset actual = charset != null ? charset : Charset.defaultCharset();
+            try {
+                return str.getBytes(actual.name());
+            } catch (UnsupportedEncodingException e) {
+                return str.getBytes(actual);
+            }
         }
         return null;
     }
@@ -80,7 +88,11 @@ public abstract class AbstractStringLayout extends AbstractLayout<String> {
     }
 
     protected byte[] getBytes(final String s) {
-        return s.getBytes(charset);
+        try {
+            return s.getBytes(charsetName);
+        } catch (UnsupportedEncodingException e) {
+            return s.getBytes(charset);
+        }
     }
 
     protected Charset getCharset() {
@@ -103,7 +115,7 @@ public abstract class AbstractStringLayout extends AbstractLayout<String> {
      */
     @Override
     public byte[] toByteArray(final LogEvent event) {
-        return toSerializable(event).getBytes(charset);
+        return getBytes(toSerializable(event));
     }
 
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/6630dd75/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 65f3a12..1ab8b9f 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -66,6 +66,9 @@
       <action issue="LOG4J2-1126" dev="ggregory" type="fix">
         Web site corrections and updates.
       </action>
+      <action issue="LOG4J2-935" dev="rpopma" type="update">
+        Performance improvement when converting Strings to byte[] arrays.
+      </action>
       <action issue="LOG4J2-1040" dev="ggregory" type="update">
         Update MongoDB driver from 2.13.3 to 3.0.4.
       </action>