You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rm...@apache.org on 2022/05/30 23:40:51 UTC

[logging-chainsaw] 01/02: Markers can now be retrieved for colorization

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

rmiddleton pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-chainsaw.git

commit af66b108811532fa8b38418a66cdee2431c02d08
Author: Robert Middleton <ro...@rm5248.com>
AuthorDate: Mon May 30 19:26:57 2022 -0400

    Markers can now be retrieved for colorization
---
 .../log4j/spi/LoggingEventFieldResolver.java       | 29 +++++++++++-----------
 1 file changed, 15 insertions(+), 14 deletions(-)

diff --git a/src/main/java/org/apache/log4j/spi/LoggingEventFieldResolver.java b/src/main/java/org/apache/log4j/spi/LoggingEventFieldResolver.java
index 51772d5..2f9679d 100644
--- a/src/main/java/org/apache/log4j/spi/LoggingEventFieldResolver.java
+++ b/src/main/java/org/apache/log4j/spi/LoggingEventFieldResolver.java
@@ -232,20 +232,21 @@ public final class LoggingEventFieldResolver {
       return event.m_threadName;
     } else if (upperField.startsWith(PROP_FIELD)) {
       //note: need to use actual fieldname since case matters
-//      Object propValue = event.getMDC(fieldName.substring(5));
-//      if (propValue == null) {
-//          //case-specific match didn't work, try case insensitive match
-//          String lowerPropKey = fieldName.substring(5).toLowerCase();
-//          Set entrySet = event.getProperties().entrySet();
-//          for (Iterator iter = entrySet.iterator();iter.hasNext();) {
-//              Map.Entry thisEntry = (Map.Entry) iter.next();
-//              if (thisEntry.getKey().toString().equalsIgnoreCase(lowerPropKey)) {
-//                  propValue = thisEntry.getValue();
-//              }
-//          }
-//      }
-//      return ((propValue == null) ? EMPTY_STRING : propValue.toString());
-        return "";
+        String realFieldName = fieldName.substring(5);
+        String property = event.getProperty(realFieldName);
+        if( property != null && property.length() >= 1 ){
+            return property;
+        }
+
+        // We did not get the property in a case-sensitive manner - check for
+        // case-insensitive
+        for( Map.Entry<String,String> entry : event.getProperties().entrySet() ){
+            if( entry.getKey().equalsIgnoreCase( realFieldName ) ){
+                return entry.getValue();
+            }
+        }
+        
+        return EMPTY_STRING;
     } else {
         org.apache.log4j.chainsaw.logevents.LocationInfo info = event.m_locationInfo;
         if (CLASS_FIELD.equals(upperField)) {