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/05/29 18:46:19 UTC

logging-log4j2 git commit: [LOG4J2-1385] (GC) CSV layouts should not create a new CSVPrinter for each log event.

Repository: logging-log4j2
Updated Branches:
  refs/heads/master 1ff244f37 -> 4471c511f


[LOG4J2-1385] (GC) CSV layouts should not create a new CSVPrinter for
each log event.

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

Branch: refs/heads/master
Commit: 4471c511f1280fe9cd2010ddf71e4614f80c5d97
Parents: 1ff244f
Author: ggregory <gg...@apache.org>
Authored: Sun May 29 11:46:13 2016 -0700
Committer: ggregory <gg...@apache.org>
Committed: Sun May 29 11:46:13 2016 -0700

----------------------------------------------------------------------
 .../log4j/core/layout/CsvLogEventLayout.java    | 35 ++++++++++----------
 .../log4j/core/layout/CsvParameterLayout.java   |  6 ++--
 src/changes/changes.xml                         |  3 ++
 3 files changed, 23 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4471c511/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/CsvLogEventLayout.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/CsvLogEventLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/CsvLogEventLayout.java
index 12e0f3d..5077987 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/CsvLogEventLayout.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/CsvLogEventLayout.java
@@ -80,26 +80,27 @@ public class CsvLogEventLayout extends AbstractCsvLayout {
         final StringBuilder buffer = getStringBuilder();
         // Revisit when 1.3 is out so that we do not need to create a new
         // printer for each event.
-        try (final CSVPrinter printer = new CSVPrinter(buffer, getFormat())) {
-            printer.print(event.getNanoTime());
-            printer.print(event.getTimeMillis());
-            printer.print(event.getLevel());
-            printer.print(event.getThreadId());
-            printer.print(event.getThreadName());
-            printer.print(event.getThreadPriority());
-            printer.print(event.getMessage().getFormattedMessage());
-            printer.print(event.getLoggerFqcn());
-            printer.print(event.getLoggerName());
-            printer.print(event.getMarker());
-            printer.print(event.getThrownProxy());
-            printer.print(event.getSource());
-            printer.print(event.getContextMap());
-            printer.print(event.getContextStack());
-            printer.println();
+        final CSVFormat format = getFormat();
+        try {
+            format.print(event.getNanoTime(), buffer, true);
+            format.print(event.getTimeMillis(), buffer, false);
+            format.print(event.getLevel(), buffer, false);
+            format.print(event.getThreadId(), buffer, false);
+            format.print(event.getThreadName(), buffer, false);
+            format.print(event.getThreadPriority(), buffer, false);
+            format.print(event.getMessage().getFormattedMessage(), buffer, false);
+            format.print(event.getLoggerFqcn(), buffer, false);
+            format.print(event.getLoggerName(), buffer, false);
+            format.print(event.getMarker(), buffer, false);
+            format.print(event.getThrownProxy(), buffer, false);
+            format.print(event.getSource(), buffer, false);
+            format.print(event.getContextMap(), buffer, false);
+            format.print(event.getContextStack(), buffer, false);
+            format.println(buffer);
             return buffer.toString();
         } catch (final IOException e) {
             StatusLogger.getLogger().error(event.toString(), e);
-            return getFormat().getCommentMarker() + " " + e;
+            return format.getCommentMarker() + " " + e;
         }
     }
 

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4471c511/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/CsvParameterLayout.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/CsvParameterLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/CsvParameterLayout.java
index dcae328..3ddc172 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/CsvParameterLayout.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/CsvParameterLayout.java
@@ -89,10 +89,8 @@ public class CsvParameterLayout extends AbstractCsvLayout {
         final Message message = event.getMessage();
         final Object[] parameters = message.getParameters();
         final StringBuilder buffer = getStringBuilder();
-        // Revisit when 1.3 is out so that we do not need to create a new
-        // printer for each event.
-        try (final CSVPrinter printer = new CSVPrinter(buffer, getFormat())) {
-            printer.printRecord(parameters);
+        try {
+            getFormat().printRecord(buffer, parameters);
             return buffer.toString();
         } catch (final IOException e) {
             StatusLogger.getLogger().error(message, e);

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4471c511/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 4c5268c..1724b0d 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -24,6 +24,9 @@
   </properties>
   <body>
     <release version="2.6.1" date="2016-MM-DD" description="GA Release 2.6.1">
+      <action issue="LOG4J2-1385" dev="ggregory" type="update">
+        (GC) CSV layouts should not create a new CSVPrinter for each log event.
+      </action>
       <action issue="LOG4J2-1398" dev="ggregory" type="update">
         Update liquibase-core from 3.4.2 to 3.5.1.
       </action>