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 2021/12/13 01:26:31 UTC

[logging-log4j2] branch removeMsgLookup updated: Remove Messge Lookups

This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to branch removeMsgLookup
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git


The following commit(s) were added to refs/heads/removeMsgLookup by this push:
     new 9336696  Remove Messge Lookups
9336696 is described below

commit 9336696fe6b2770c504bbb9a6d809dddc6ab289c
Author: Ralph Goers <rg...@apache.org>
AuthorDate: Sun Dec 12 18:26:20 2021 -0700

    Remove Messge Lookups
---
 .../core/pattern/MessagePatternConverter.java      | 39 ----------------------
 .../core/layout/PatternLayoutLookupDateTest.java   |  4 +--
 .../core/pattern/MessagePatternConverterTest.java  |  2 +-
 .../log4j/core/pattern/RegexReplacementTest.java   |  2 +-
 src/site/xdoc/manual/layouts.xml.vm                | 18 ++--------
 5 files changed, 7 insertions(+), 58 deletions(-)

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 1b6a584..7625406 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
@@ -46,17 +46,6 @@ public class MessagePatternConverter extends LogEventPatternConverter {
         super("Message", "message");
     }
 
-    private static boolean loadLookups(final String[] options) {
-        if (options != null) {
-            for (final String option : options) {
-                if (LOOKUPS.equalsIgnoreCase(option)) {
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
-
     private static TextRenderer loadMessageRenderer(final String[] options) {
         if (options != null) {
             for (final String option : options) {
@@ -86,15 +75,11 @@ public class MessagePatternConverter extends LogEventPatternConverter {
      * @return instance of pattern converter.
      */
     public static MessagePatternConverter newInstance(final Configuration config, final String[] options) {
-        boolean lookups = loadLookups(options);
         String[] formats = withoutLookupOptions(options);
         TextRenderer textRenderer = loadMessageRenderer(formats);
         MessagePatternConverter result = formats == null || formats.length == 0
                 ? SimpleMessagePatternConverter.INSTANCE
                 : new FormattedMessagePatternConverter(formats);
-        if (lookups && config != null) {
-            result = new LookupMessagePatternConverter(result, config);
-        }
         if (textRenderer != null) {
             result = new RenderingPatternConverter(result, textRenderer);
         }
@@ -164,30 +149,6 @@ public class MessagePatternConverter extends LogEventPatternConverter {
         }
     }
 
-    private static final class LookupMessagePatternConverter extends MessagePatternConverter {
-        private final MessagePatternConverter delegate;
-        private final Configuration config;
-
-        LookupMessagePatternConverter(final MessagePatternConverter delegate, final Configuration config) {
-            this.delegate = delegate;
-            this.config = config;
-        }
-
-        /**
-         * {@inheritDoc}
-         */
-        @Override
-        public void format(final LogEvent event, final StringBuilder toAppendTo) {
-            int start = toAppendTo.length();
-            delegate.format(event, toAppendTo);
-            int indexOfSubstitution = toAppendTo.indexOf("${", start);
-            if (indexOfSubstitution >= 0) {
-                config.getStrSubstitutor()
-                        .replaceIn(event, toAppendTo, indexOfSubstitution, toAppendTo.length() - indexOfSubstitution);
-            }
-        }
-    }
-
     private static final class RenderingPatternConverter extends MessagePatternConverter {
 
         private final MessagePatternConverter delegate;
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/PatternLayoutLookupDateTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/PatternLayoutLookupDateTest.java
index 01d1966..d6a0119 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/PatternLayoutLookupDateTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/PatternLayoutLookupDateTest.java
@@ -22,7 +22,7 @@ import org.apache.logging.log4j.junit.Named;
 import org.apache.logging.log4j.test.appender.ListAppender;
 import org.junit.jupiter.api.Test;
 
-import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /**
  * See (LOG4J2-905) Ability to disable (date) lookup completely, compatibility issues with other libraries like camel.
@@ -38,7 +38,7 @@ public class PatternLayoutLookupDateTest {
         final String template = "${date:YYYY-MM-dd}";
         context.getLogger(PatternLayoutLookupDateTest.class.getName()).info(template);
         final String string = listAppender.getMessages().get(0);
-        assertFalse(string.contains(template), string);
+        assertTrue(string.contains(template), string);
     }
 
 }
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/pattern/MessagePatternConverterTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/pattern/MessagePatternConverterTest.java
index 6c6dae9..5dd6fc9 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/pattern/MessagePatternConverterTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/pattern/MessagePatternConverterTest.java
@@ -121,7 +121,7 @@ public class MessagePatternConverterTest {
                 .setMessage(msg).build();
         final StringBuilder sb = new StringBuilder();
         converter.format(event, sb);
-        assertEquals("bar", sb.toString(), "Unexpected result");
+        assertEquals("${foo}", sb.toString(), "Unexpected result");
     }
 
     @Test
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/pattern/RegexReplacementTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/pattern/RegexReplacementTest.java
index 6b2f63d..fc112cd 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/pattern/RegexReplacementTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/pattern/RegexReplacementTest.java
@@ -67,7 +67,7 @@ public class RegexReplacementTest {
         List<String> msgs = app.getMessages();
         assertNotNull(msgs);
         assertEquals(1, msgs.size(), "Incorrect number of messages. Should be 1 is " + msgs.size());
-        assertEquals("LoggerTest This is a test for Apache" + Strings.LINE_SEPARATOR, msgs.get(0));
+        assertEquals("LoggerTest This is a test for ${ctx:MyKey}" + Strings.LINE_SEPARATOR, msgs.get(0));
     }
 
     @Test
diff --git a/src/site/xdoc/manual/layouts.xml.vm b/src/site/xdoc/manual/layouts.xml.vm
index 727ea1a..6d844b4 100644
--- a/src/site/xdoc/manual/layouts.xml.vm
+++ b/src/site/xdoc/manual/layouts.xml.vm
@@ -1460,9 +1460,9 @@ WARN  [main]: Message 2</pre>
             <tr>
               <td align="center">
                 <a name="PatternMessage"/>
-                <b>m</b>{lookups}{ansi}<br />
-                <b>msg</b>{lookups}{ansi}<br />
-                <b>message</b>{lookups}{ansi}
+                <b>m</b>{ansi}<br />
+                <b>msg</b>{ansi}<br />
+                <b>message</b>{ansi}
               </td>
               <td>
                 <p>
@@ -1497,18 +1497,6 @@ WARN  [main]: Message 2</pre>
                   The call site can look like this:
                 </p>
                 <pre class="prettyprint linenums">logger.info("@|KeyStyle {}|@ = @|ValueStyle {}|@", entry.getKey(), entry.getValue());</pre>
-                <p>
-                  Use <code>{lookups}</code> to log messages like <code>logger.info("Try ${esc.d}{date:YYYY-MM-dd}")</code>
-                  using lookups, this will replace the date template <code>${esc.d}{date:YYYY-MM-dd}</code>
-                  with an actual date. This can be confusing in many cases, and it's often both easier and
-                  more obvious to handle the lookup in code.
-                  This feature is disabled by default and the message string is logged untouched.
-                </p>
-                <p>
-                  <b>Note: </b>Users are <b>STRONGLY</b> discouraged from using the lookups option. Doing so may allow uncontrolled user input
-                  containing lookups to take unintended actions. In almost all cases the software developer can accomplish the same tasks
-                  lookups perform directly in the application code.
-                </p>
               </td>
             </tr>
             <tr>