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>