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

logging-log4j2 git commit: LOG4J2-1341 mark garbage-free converters with the @PerformanceSensitive("allocation") annotation

Repository: logging-log4j2
Updated Branches:
  refs/heads/master f958b3269 -> 76d78fe9a


LOG4J2-1341 mark garbage-free converters with the @PerformanceSensitive("allocation") annotation


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

Branch: refs/heads/master
Commit: 76d78fe9a4adecebd9805d051a1606b2ac70ccd0
Parents: f958b32
Author: rpopma <rp...@apache.org>
Authored: Mon Nov 7 07:43:16 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Mon Nov 7 07:43:16 2016 +0900

----------------------------------------------------------------------
 .../logging/log4j/core/pattern/DatePatternConverter.java     | 2 ++
 .../log4j/core/pattern/EqualsBaseReplacementConverter.java   | 2 ++
 .../core/pattern/EqualsIgnoreCaseReplacementConverter.java   | 2 ++
 .../log4j/core/pattern/EqualsReplacementConverter.java       | 2 ++
 .../logging/log4j/core/pattern/FileDatePatternConverter.java | 2 ++
 .../apache/logging/log4j/core/pattern/FormattingInfo.java    | 3 +++
 .../logging/log4j/core/pattern/HighlightConverter.java       | 2 ++
 .../logging/log4j/core/pattern/IntegerPatternConverter.java  | 2 ++
 .../logging/log4j/core/pattern/LevelPatternConverter.java    | 2 ++
 .../log4j/core/pattern/LineSeparatorPatternConverter.java    | 2 ++
 .../logging/log4j/core/pattern/LiteralPatternConverter.java  | 8 +++++---
 .../logging/log4j/core/pattern/LoggerPatternConverter.java   | 2 ++
 .../logging/log4j/core/pattern/MarkerPatternConverter.java   | 2 ++
 .../log4j/core/pattern/MarkerSimpleNamePatternConverter.java | 2 ++
 .../logging/log4j/core/pattern/MaxLengthConverter.java       | 2 ++
 .../logging/log4j/core/pattern/MdcPatternConverter.java      | 2 ++
 .../logging/log4j/core/pattern/MessagePatternConverter.java  | 4 +++-
 .../apache/logging/log4j/core/pattern/NameAbbreviator.java   | 3 +++
 .../logging/log4j/core/pattern/NamePatternConverter.java     | 3 +++
 .../logging/log4j/core/pattern/NanoTimePatternConverter.java | 2 ++
 .../log4j/core/pattern/RelativeTimePatternConverter.java     | 2 ++
 .../log4j/core/pattern/SequenceNumberPatternConverter.java   | 2 ++
 .../apache/logging/log4j/core/pattern/StyleConverter.java    | 2 ++
 .../logging/log4j/core/pattern/ThreadIdPatternConverter.java | 4 +++-
 .../log4j/core/pattern/ThreadNamePatternConverter.java       | 2 ++
 .../log4j/core/pattern/ThreadPriorityPatternConverter.java   | 4 +++-
 26 files changed, 61 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/DatePatternConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/DatePatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/DatePatternConverter.java
index 19edde5..4f21d48 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/DatePatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/DatePatternConverter.java
@@ -28,12 +28,14 @@ import org.apache.logging.log4j.core.util.Constants;
 import org.apache.logging.log4j.core.util.datetime.FastDateFormat;
 import org.apache.logging.log4j.core.util.datetime.FixedDateFormat;
 import org.apache.logging.log4j.core.util.datetime.FixedDateFormat.FixedFormat;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 
 /**
  * Converts and formats the event's date in a StringBuilder.
  */
 @Plugin(name = "DatePatternConverter", category = PatternConverter.CATEGORY)
 @ConverterKeys({"d", "date"})
+@PerformanceSensitive("allocation")
 public final class DatePatternConverter extends LogEventPatternConverter implements ArrayPatternConverter {
 
     private abstract static class Formatter {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/EqualsBaseReplacementConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/EqualsBaseReplacementConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/EqualsBaseReplacementConverter.java
index 61cb266..df4571a 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/EqualsBaseReplacementConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/EqualsBaseReplacementConverter.java
@@ -19,10 +19,12 @@ package org.apache.logging.log4j.core.pattern;
 import java.util.List;
 
 import org.apache.logging.log4j.core.LogEvent;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 
 /**
  * Equals pattern converter.
  */
+@PerformanceSensitive("allocation")
 public abstract class EqualsBaseReplacementConverter extends LogEventPatternConverter {
     private final List<PatternFormatter> formatters;
     private final List<PatternFormatter> substitutionFormatters;

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/EqualsIgnoreCaseReplacementConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/EqualsIgnoreCaseReplacementConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/EqualsIgnoreCaseReplacementConverter.java
index 6f46c03..d104241 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/EqualsIgnoreCaseReplacementConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/EqualsIgnoreCaseReplacementConverter.java
@@ -21,12 +21,14 @@ import java.util.List;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
 import org.apache.logging.log4j.core.layout.PatternLayout;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 
 /**
  * Equals ignore case pattern converter.
  */
 @Plugin(name = "equalsIgnoreCase", category = PatternConverter.CATEGORY)
 @ConverterKeys({ "equalsIgnoreCase" })
+@PerformanceSensitive("allocation")
 public final class EqualsIgnoreCaseReplacementConverter extends EqualsBaseReplacementConverter {
 
     /**

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/EqualsReplacementConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/EqualsReplacementConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/EqualsReplacementConverter.java
index 4ccb0c5..d1c62fe 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/EqualsReplacementConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/EqualsReplacementConverter.java
@@ -21,12 +21,14 @@ import java.util.List;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
 import org.apache.logging.log4j.core.layout.PatternLayout;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 
 /**
  * Equals pattern converter.
  */
 @Plugin(name = "equals", category = PatternConverter.CATEGORY)
 @ConverterKeys({ "equals" })
+@PerformanceSensitive("allocation")
 public final class EqualsReplacementConverter extends EqualsBaseReplacementConverter {
 
     /**

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/FileDatePatternConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/FileDatePatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/FileDatePatternConverter.java
index 7a83d78..c9eb039 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/FileDatePatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/FileDatePatternConverter.java
@@ -17,6 +17,7 @@
 package org.apache.logging.log4j.core.pattern;
 
 import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 
 /**
  * Formats a date by delegating to {@link DatePatternConverter}.  The default
@@ -25,6 +26,7 @@ import org.apache.logging.log4j.core.config.plugins.Plugin;
  */
 @Plugin(name = "FileDatePatternConverter", category = "FileConverter")
 @ConverterKeys({ "d", "date" })
+@PerformanceSensitive("allocation")
 public final class FileDatePatternConverter {
     /**
      * Private constructor.

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/FormattingInfo.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/FormattingInfo.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/FormattingInfo.java
index 18369db..0b9f2b9 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/FormattingInfo.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/FormattingInfo.java
@@ -17,9 +17,12 @@
 
 package org.apache.logging.log4j.core.pattern;
 
+import org.apache.logging.log4j.util.PerformanceSensitive;
+
 /**
  * Modifies the output of a pattern converter for a specified minimum and maximum width and alignment.
  */
+@PerformanceSensitive("allocation")
 public final class FormattingInfo {
     /**
      * Array of spaces.

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/HighlightConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/HighlightConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/HighlightConverter.java
index beea9bd..eb46a7a 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/HighlightConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/HighlightConverter.java
@@ -27,6 +27,7 @@ import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
 import org.apache.logging.log4j.core.layout.PatternLayout;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 import org.apache.logging.log4j.util.Strings;
 
 /**
@@ -68,6 +69,7 @@ import org.apache.logging.log4j.util.Strings;
  */
 @Plugin(name = "highlight", category = PatternConverter.CATEGORY)
 @ConverterKeys({ "highlight" })
+@PerformanceSensitive("allocation")
 public final class HighlightConverter extends LogEventPatternConverter implements AnsiConverter {
 
     private static final Map<Level, String> DEFAULT_STYLES = new HashMap<>();

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/IntegerPatternConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/IntegerPatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/IntegerPatternConverter.java
index 9e6d419..dab661d 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/IntegerPatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/IntegerPatternConverter.java
@@ -19,12 +19,14 @@ package org.apache.logging.log4j.core.pattern;
 import java.util.Date;
 
 import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 
 /**
  * Formats an integer.
  */
 @Plugin(name = "IntegerPatternConverter", category = "FileConverter")
 @ConverterKeys({ "i", "index" })
+@PerformanceSensitive("allocation")
 public final class IntegerPatternConverter extends AbstractPatternConverter implements ArrayPatternConverter {
 
     /**

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LevelPatternConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LevelPatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LevelPatternConverter.java
index c044afd..debee5a 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LevelPatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LevelPatternConverter.java
@@ -24,12 +24,14 @@ import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
 import org.apache.logging.log4j.core.util.Patterns;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 
 /**
  * Returns the event's level in a StringBuilder.
  */
 @Plugin(name = "LevelPatternConverter", category = PatternConverter.CATEGORY)
 @ConverterKeys({ "p", "level" })
+@PerformanceSensitive("allocation")
 public final class LevelPatternConverter extends LogEventPatternConverter {
     private static final String OPTION_LENGTH = "length";
     private static final String OPTION_LOWER = "lowerCase";

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LineSeparatorPatternConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LineSeparatorPatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LineSeparatorPatternConverter.java
index 47c3f5a..1d7b022 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LineSeparatorPatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LineSeparatorPatternConverter.java
@@ -18,6 +18,7 @@ package org.apache.logging.log4j.core.pattern;
 
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 import org.apache.logging.log4j.util.Strings;
 
 /**
@@ -25,6 +26,7 @@ import org.apache.logging.log4j.util.Strings;
  */
 @Plugin(name = "LineSeparatorPatternConverter", category = PatternConverter.CATEGORY)
 @ConverterKeys({ "n" })
+@PerformanceSensitive("allocation")
 public final class LineSeparatorPatternConverter extends LogEventPatternConverter {
 
     /**

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LiteralPatternConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LiteralPatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LiteralPatternConverter.java
index 0751bca..2e24706 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LiteralPatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LiteralPatternConverter.java
@@ -19,13 +19,15 @@ package org.apache.logging.log4j.core.pattern;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.util.OptionConverter;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 
 
 /**
  * Formats a string literal.
  */
+@PerformanceSensitive("allocation") // except for replacements
 public final class LiteralPatternConverter extends LogEventPatternConverter implements ArrayPatternConverter {
-    
+
     /**
      * String literal.
      */
@@ -57,7 +59,7 @@ public final class LiteralPatternConverter extends LogEventPatternConverter impl
     public void format(final LogEvent event, final StringBuilder toAppendTo) {
         toAppendTo.append(substitute ? config.getStrSubstitutor().replace(event, literal) : literal);
     }
-    
+
     /**
      * {@inheritDoc}
      */
@@ -87,5 +89,5 @@ public final class LiteralPatternConverter extends LogEventPatternConverter impl
     public String toString() {
         return "LiteralPatternConverter[literal=" + literal + ", config=" + config + ", substitute=" + substitute + "]";
     }
-    
+
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LoggerPatternConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LoggerPatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LoggerPatternConverter.java
index d6b43c0..609af7a 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LoggerPatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LoggerPatternConverter.java
@@ -18,6 +18,7 @@ package org.apache.logging.log4j.core.pattern;
 
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 
 
 /**
@@ -25,6 +26,7 @@ import org.apache.logging.log4j.core.config.plugins.Plugin;
  */
 @Plugin(name = "LoggerPatternConverter", category = PatternConverter.CATEGORY)
 @ConverterKeys({ "c", "logger" })
+@PerformanceSensitive("allocation")
 public final class LoggerPatternConverter extends NamePatternConverter {
     /**
      * Singleton.

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MarkerPatternConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MarkerPatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MarkerPatternConverter.java
index c3c4857..dde5502 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MarkerPatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MarkerPatternConverter.java
@@ -19,6 +19,7 @@ package org.apache.logging.log4j.core.pattern;
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 import org.apache.logging.log4j.util.StringBuilders;
 
 /**
@@ -26,6 +27,7 @@ import org.apache.logging.log4j.util.StringBuilders;
  */
 @Plugin(name = "MarkerPatternConverter", category = PatternConverter.CATEGORY)
 @ConverterKeys({ "marker" })
+@PerformanceSensitive("allocation")
 public final class MarkerPatternConverter extends LogEventPatternConverter {
 
     /**

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MarkerSimpleNamePatternConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MarkerSimpleNamePatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MarkerSimpleNamePatternConverter.java
index 525641c..b274eb1 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MarkerSimpleNamePatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MarkerSimpleNamePatternConverter.java
@@ -19,12 +19,14 @@ package org.apache.logging.log4j.core.pattern;
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 
 /**
  * Appends an event's maker name to a StringBuilder.
  */
 @Plugin(name = "MarkerNamePatternConverter", category = PatternConverter.CATEGORY)
 @ConverterKeys({ "markerSimpleName" })
+@PerformanceSensitive("allocation")
 public final class MarkerSimpleNamePatternConverter extends LogEventPatternConverter {
 
     /**

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MaxLengthConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MaxLengthConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MaxLengthConverter.java
index 8fb9270..1a59a4b 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MaxLengthConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MaxLengthConverter.java
@@ -24,6 +24,7 @@ import org.apache.logging.log4j.core.appender.AbstractAppender;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
 import org.apache.logging.log4j.core.layout.PatternLayout;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 
 /**
  * Max length pattern converter. Limit contained text to a maximum length.
@@ -36,6 +37,7 @@ import org.apache.logging.log4j.core.layout.PatternLayout;
  */
 @Plugin(name = "maxLength", category = PatternConverter.CATEGORY)
 @ConverterKeys({"maxLength", "maxLen"})
+@PerformanceSensitive("allocation")
 public final class MaxLengthConverter extends LogEventPatternConverter {
 
     /**

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MdcPatternConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MdcPatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MdcPatternConverter.java
index 599d623..7e99770 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MdcPatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MdcPatternConverter.java
@@ -16,6 +16,7 @@
  */
 package org.apache.logging.log4j.core.pattern;
 
+import org.apache.logging.log4j.util.PerformanceSensitive;
 import org.apache.logging.log4j.util.ReadOnlyStringMap;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
@@ -32,6 +33,7 @@ import org.apache.logging.log4j.util.StringBuilders;
  */
 @Plugin(name = "MdcPatternConverter", category = PatternConverter.CATEGORY)
 @ConverterKeys({ "X", "mdc", "MDC" })
+@PerformanceSensitive("allocation")
 public final class MdcPatternConverter extends LogEventPatternConverter {
 
     private static final ThreadLocal<StringBuilder> threadLocal = new ThreadLocal<>();

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MessagePatternConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MessagePatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MessagePatternConverter.java
index 9050dec..1cecfd5 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MessagePatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MessagePatternConverter.java
@@ -26,6 +26,7 @@ import org.apache.logging.log4j.core.util.Loader;
 import org.apache.logging.log4j.message.Message;
 import org.apache.logging.log4j.message.MultiformatMessage;
 import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 import org.apache.logging.log4j.util.StringBuilderFormattable;
 
 /**
@@ -33,6 +34,7 @@ import org.apache.logging.log4j.util.StringBuilderFormattable;
  */
 @Plugin(name = "MessagePatternConverter", category = PatternConverter.CATEGORY)
 @ConverterKeys({ "m", "msg", "message" })
+@PerformanceSensitive("allocation")
 public final class MessagePatternConverter extends LogEventPatternConverter {
 
     private static final String NOLOOKUPS = "nolookups";
@@ -44,7 +46,7 @@ public final class MessagePatternConverter extends LogEventPatternConverter {
 
     /**
      * Private constructor.
-     * 
+     *
      * @param options
      *            options, may be null.
      */

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/NameAbbreviator.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/NameAbbreviator.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/NameAbbreviator.java
index 4cd28fb..2fb6ea9 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/NameAbbreviator.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/NameAbbreviator.java
@@ -19,10 +19,13 @@ package org.apache.logging.log4j.core.pattern;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.logging.log4j.util.PerformanceSensitive;
+
 
 /**
  * NameAbbreviator generates abbreviated logger and class names.
  */
+@PerformanceSensitive("allocation")
 public abstract class NameAbbreviator {
     /**
      * Default (no abbreviation) abbreviator.

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/NamePatternConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/NamePatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/NamePatternConverter.java
index a33a9cc..d6ba52d 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/NamePatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/NamePatternConverter.java
@@ -17,9 +17,12 @@
 package org.apache.logging.log4j.core.pattern;
 
 
+import org.apache.logging.log4j.util.PerformanceSensitive;
+
 /**
  * Abstract base class for other pattern converters which can return only parts of their name.
  */
+@PerformanceSensitive("allocation")
 public abstract class NamePatternConverter extends LogEventPatternConverter {
     /**
      * Abbreviator.

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/NanoTimePatternConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/NanoTimePatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/NanoTimePatternConverter.java
index 3d11447..ba6186b 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/NanoTimePatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/NanoTimePatternConverter.java
@@ -18,12 +18,14 @@ package org.apache.logging.log4j.core.pattern;
 
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 
 /**
  * Converts and formats the event's nanoTime in a StringBuilder.
  */
 @Plugin(name = "NanoTimePatternConverter", category = PatternConverter.CATEGORY)
 @ConverterKeys({ "N", "nano" })
+@PerformanceSensitive("allocation")
 public final class NanoTimePatternConverter extends LogEventPatternConverter {
 
     /**

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/RelativeTimePatternConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/RelativeTimePatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/RelativeTimePatternConverter.java
index 98e3d5e..ffc1ed4 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/RelativeTimePatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/RelativeTimePatternConverter.java
@@ -20,12 +20,14 @@ import java.lang.management.ManagementFactory;
 
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 
 /**
  * Returns the relative time in milliseconds since JVM Startup.
  */
 @Plugin(name = "RelativeTimePatternConverter", category = PatternConverter.CATEGORY)
 @ConverterKeys({ "r", "relative" })
+@PerformanceSensitive("allocation")
 public class RelativeTimePatternConverter extends LogEventPatternConverter {
     private final long startTime = ManagementFactory.getRuntimeMXBean().getStartTime();
 

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/SequenceNumberPatternConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/SequenceNumberPatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/SequenceNumberPatternConverter.java
index ef52b42..b607cbf 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/SequenceNumberPatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/SequenceNumberPatternConverter.java
@@ -20,12 +20,14 @@ import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 
 /**
  * Formats the event sequence number.
  */
 @Plugin(name = "SequenceNumberPatternConverter", category = "Converter")
 @ConverterKeys({ "sn", "sequenceNumber" })
+@PerformanceSensitive("allocation")
 public final class SequenceNumberPatternConverter extends LogEventPatternConverter {
 
     private static final AtomicLong SEQUENCE = new AtomicLong();

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/StyleConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/StyleConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/StyleConverter.java
index 0d8c730..3c100e3 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/StyleConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/StyleConverter.java
@@ -24,12 +24,14 @@ import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
 import org.apache.logging.log4j.core.layout.PatternLayout;
 import org.apache.logging.log4j.core.util.Patterns;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 
 /**
  * Style pattern converter. Adds ANSI color styling to the result of the enclosed pattern.
  */
 @Plugin(name = "style", category = PatternConverter.CATEGORY)
 @ConverterKeys({ "style" })
+@PerformanceSensitive("allocation")
 public final class StyleConverter extends LogEventPatternConverter implements AnsiConverter {
 
     private final List<PatternFormatter> patternFormatters;

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThreadIdPatternConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThreadIdPatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThreadIdPatternConverter.java
index 4acfd61..1f5bc12 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThreadIdPatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThreadIdPatternConverter.java
@@ -18,14 +18,16 @@ package org.apache.logging.log4j.core.pattern;
 
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 
 /**
  * Formats the event thread ID.
- * 
+ *
  * @since 2.6
  */
 @Plugin(name = "ThreadIdPatternConverter", category = PatternConverter.CATEGORY)
 @ConverterKeys({ "T", "tid", "threadId" })
+@PerformanceSensitive("allocation")
 public final class ThreadIdPatternConverter extends LogEventPatternConverter {
     /**
      * Singleton.

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThreadNamePatternConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThreadNamePatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThreadNamePatternConverter.java
index 8336e88..de3e824 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThreadNamePatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThreadNamePatternConverter.java
@@ -18,12 +18,14 @@ package org.apache.logging.log4j.core.pattern;
 
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 
 /**
  * Formats the event thread name.
  */
 @Plugin(name = "ThreadPatternConverter", category = PatternConverter.CATEGORY)
 @ConverterKeys({ "t", "tn", "thread", "threadName" })
+@PerformanceSensitive("allocation")
 public final class ThreadNamePatternConverter extends LogEventPatternConverter {
     /**
      * Singleton.

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/76d78fe9/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThreadPriorityPatternConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThreadPriorityPatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThreadPriorityPatternConverter.java
index 31ae15d..b520892 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThreadPriorityPatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThreadPriorityPatternConverter.java
@@ -18,14 +18,16 @@ package org.apache.logging.log4j.core.pattern;
 
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 
 /**
  * Formats the event thread priority.
- * 
+ *
  * @since 2.6
  */
 @Plugin(name = "ThreadPriorityPatternConverter", category = PatternConverter.CATEGORY)
 @ConverterKeys({ "tp", "threadPriority" })
+@PerformanceSensitive("allocation")
 public final class ThreadPriorityPatternConverter extends LogEventPatternConverter {
     /**
      * Singleton.