You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2018/02/05 20:26:11 UTC

svn commit: r1823237 - in /uima/uv3/uimaj-v3/trunk/uimaj-core/src: main/java/org/apache/uima/util/impl/ test/java/org/apache/uima/util/impl/

Author: schor
Date: Mon Feb  5 20:26:11 2018
New Revision: 1823237

URL: http://svn.apache.org/viewvc?rev=1823237&view=rev
Log:
[UIMA-5719] avoid double scan for replacement in rb style logging, fix some logging apis to use the proper message substitution style.

Modified:
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/JSR47Logger_impl.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Log4jLogger_impl.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Logger_common_impl.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Logger_impl.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Slf4jLogger_impl.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/util/impl/JSR47Logger_implTest.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/util/impl/LoggingTest.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/util/impl/TestLog4jLogger_impl.java

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/JSR47Logger_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/JSR47Logger_impl.java?rev=1823237&r1=1823236&r2=1823237&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/JSR47Logger_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/JSR47Logger_impl.java Mon Feb  5 20:26:11 2018
@@ -261,10 +261,16 @@ public class JSR47Logger_impl extends Lo
   
 
   @Override
-  public void log(Marker m, String aFqcn, Level level, String msg, Object[] args, Throwable throwable) {
+  public void log(Marker m, String aFqcn, Level level, String msg, Object[] args, Throwable throwable) {    
+    if (isLoggable(level, m)) {
+      log(m, aFqcn, level, MessageFormat.format(msg, args), throwable);
+    }
+  }
+  
+  @Override
+  public void log(Marker m, String aFqcn, Level level, String msg, Throwable throwable) {
     if (isLoggable(level, m)) {    
-      LogRecord record = new LogRecord(getJSR47Level(level, m), 
-                                       MessageFormat.format(msg, args));
+      LogRecord record = new LogRecord(getJSR47Level(level, m), msg);
       record.setLoggerName(getName());
       record.setThrown(throwable);
       
@@ -297,6 +303,7 @@ public class JSR47Logger_impl extends Lo
       logger.log(record);
     }
   }
+
   
   @Override
   public void log2(Marker m, String aFqcn, Level level, String msg, Object[] args, Throwable throwable) {

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Log4jLogger_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Log4jLogger_impl.java?rev=1823237&r1=1823236&r2=1823237&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Log4jLogger_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Log4jLogger_impl.java Mon Feb  5 20:26:11 2018
@@ -303,10 +303,14 @@ public class Log4jLogger_impl extends Lo
    }
 
    public void log(Marker m, String aFqcn, Level level, String message, Object[] args, Throwable thrown) {
-     String substituted = MessageFormat.format(message, args);  
-     logger.logIfEnabled(aFqcn, getLog4jLevel(level), m(m), substituted, zeroLengthArray, thrown);
+     log(m, aFqcn, level, MessageFormat.format(message, args), thrown);
    }  
 
+   @Override
+   public void log(Marker m, String aFqcn, Level level, String message, Throwable thrown) {
+     logger.logIfEnabled(aFqcn, getLog4jLevel(level), m(m), message, thrown);
+   }
+
    public void log2(Marker m, String aFqcn, Level level, String message, Object[] args, Throwable thrown) {
      if (thrown != null) {
        assert args == null;

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Logger_common_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Logger_common_impl.java?rev=1823237&r1=1823236&r2=1823237&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Logger_common_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Logger_common_impl.java Mon Feb  5 20:26:11 2018
@@ -155,6 +155,20 @@ public abstract class Logger_common_impl
                            String message, Object[] args, Throwable throwable);
   
   /**
+   * The version of the main log call implemented by subclasses that skips the substitution
+   *   because it already was done by rb() 
+   * 
+   * @param m the marker
+   * @param aFqcn the fully qualified class name of the top-most logging class used
+   *                   to filter the stack trace to get the caller class / method info
+   * @param level the UIMA level
+   * @param message -
+   * @param throwable - can be null
+   */
+  public abstract void log(Marker m, String aFqcn, Level level,
+                           String message, Throwable throwable);
+  
+  /**
    * @param level the Uima Level
    * @return the Marker to use
    */
@@ -178,7 +192,8 @@ public abstract class Logger_common_impl
    */
   @Override
   public void log(String aFqcn, Level level, String message, Throwable thrown) {
-    log(getMarkerForLevel(level), aFqcn, level, message, null, thrown);
+//    log(getMarkerForLevel(level), aFqcn, level, message, null, thrown);
+    log(getMarkerForLevel(level), aFqcn, level, message, thrown);
   }
   
   /**

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Logger_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Logger_impl.java?rev=1823237&r1=1823236&r2=1823237&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Logger_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Logger_impl.java Mon Feb  5 20:26:11 2018
@@ -149,16 +149,21 @@ public class Logger_impl extends Logger_
   }
     
   public void log(Marker m, String aFqcn, Level level, String message, Object[] args, Throwable thrown) {
+    log(m, aFqcn, level, MessageFormat.format(message, args), thrown);
+  }
+  
+  @Override
+  public void log(Marker m, String aFqcn, Level level, String message, Throwable thrown) {
     if (mOut != null) {
       mOut.print(new Date());
       mOut.print(": " + level.toString() + ": ");
-      mOut.println(MessageFormat.format(message, args));
+      mOut.println(message);
       if (null != thrown) {
         thrown.printStackTrace(mOut);
       }
     }
   }
-  
+
   public void log2(Marker m, String aFqcn, Level level, String message, Object[] args, Throwable thrown) {
     if (mOut != null) {
       mOut.print(new Date());

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Slf4jLogger_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Slf4jLogger_impl.java?rev=1823237&r1=1823236&r2=1823237&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Slf4jLogger_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Slf4jLogger_impl.java Mon Feb  5 20:26:11 2018
@@ -224,42 +224,48 @@ public class Slf4jLogger_impl extends Lo
   
   // does the uima-logger style of message formatting
   public void log(Marker m, String aFqcn, Level level, String message, Object[] args, Throwable thrown) {
+    log(m, aFqcn, level, MessageFormat.format(message, args), thrown);
+  }
+  
+  @Override
+  public void log(Marker m, String aFqcn, Level level, String msg_with_params, Throwable thrown) {
     m = (m == null) 
-          ? getMarkerForLevel(level) 
-          : m;
-          
-    if (isLocationCapable) {  // slf4j simple logger is not
-      ((org.slf4j.spi.LocationAwareLogger)logger).log(m, aFqcn, getSlf4jLevel(level), message, args, thrown);
-    } else {
-      switch(level.toInteger()) {
-      case Level.SEVERE_INT: 
-        // all of these calls to MessageFormat are to the java.text.MessageFormat
-        // to do {n} style format substitution
-        logger.error(m, MessageFormat.format(message, args), thrown); 
-        break;
-      case Level.WARNING_INT: 
-        logger.warn(m, MessageFormat.format(message, args), thrown); 
-        break;
-      case Level.INFO_INT: 
-        logger.info(m, MessageFormat.format(message, args), thrown); 
-        break;
-      case Level.CONFIG_INT: 
-        logger.info(m, MessageFormat.format(message, args), thrown); 
-        break;
-      case Level.FINE_INT: 
-        logger.debug(m, MessageFormat.format(message, args), thrown); 
-        break;
-      case Level.FINER_INT: 
-        logger.trace(m, MessageFormat.format(message, args), thrown); 
-        break;
-      case Level.FINEST_INT: 
-        logger.trace(m, MessageFormat.format(message, args), thrown); 
-        break;
-      default: Misc.internalError();
-      }
+        ? getMarkerForLevel(level) 
+        : m;
+        
+  if (isLocationCapable) {  // slf4j simple logger is not
+    ((org.slf4j.spi.LocationAwareLogger)logger).log(m, aFqcn, getSlf4jLevel(level), msg_with_params, null, thrown);
+  } else {
+    switch(level.toInteger()) {
+    case Level.SEVERE_INT: 
+      // all of these calls to MessageFormat are to the java.text.MessageFormat
+      // to do {n} style format substitution
+      logger.error(m, msg_with_params, thrown); 
+      break;
+    case Level.WARNING_INT: 
+      logger.warn(m, msg_with_params, thrown); 
+      break;
+    case Level.INFO_INT: 
+      logger.info(m, msg_with_params, thrown); 
+      break;
+    case Level.CONFIG_INT: 
+      logger.info(m, msg_with_params, thrown); 
+      break;
+    case Level.FINE_INT: 
+      logger.debug(m, msg_with_params, thrown); 
+      break;
+    case Level.FINER_INT: 
+      logger.trace(m, msg_with_params, thrown); 
+      break;
+    case Level.FINEST_INT: 
+      logger.trace(m, msg_with_params, thrown); 
+      break;
+    default: Misc.internalError();
     }
   }
-  
+    
+  }
+
   // does the slf4j style of message formatting
   public void log2(Marker m, String aFqcn, Level level, String message, Object[] args, Throwable thrown) {
     m = (m == null) 

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/util/impl/JSR47Logger_implTest.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/util/impl/JSR47Logger_implTest.java?rev=1823237&r1=1823236&r2=1823237&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/util/impl/JSR47Logger_implTest.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/util/impl/JSR47Logger_implTest.java Mon Feb  5 20:26:11 2018
@@ -301,6 +301,8 @@ public class JSR47Logger_implTest extend
     logger.logrb(Level.INFO, "testClass", "testMethod", bundle, msgKey, thrown);
     logger.logrb(Level.INFO, "testClass", "testMethod", null, null, thrown);
     
+    // https://issues.apache.org/jira/browse/UIMA-5719
+    logger.logrb(Level.WARNING, "testClass", "testMethod", "org.apache.uima.impl.log_messages", "UIMA_external_override_ignored__CONFIG", new Object[] { "n1", "${abc}" });
   } finally {
     logger.setLevel(Level.INFO);
   }

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/util/impl/LoggingTest.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/util/impl/LoggingTest.java?rev=1823237&r1=1823236&r2=1823237&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/util/impl/LoggingTest.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/util/impl/LoggingTest.java Mon Feb  5 20:26:11 2018
@@ -56,6 +56,9 @@ public class LoggingTest extends TestCas
 
       // test base logging functions
       logger.log(Level.SEVERE, "Log test messege with Level SEVERE");
+
+      // https://issues.apache.org/jira/browse/UIMA-5719
+      logger.logrb(Level.WARNING, "testClass", "testMethod", "org.apache.uima.impl.log_messages", "UIMA_external_override_ignored__CONFIG", new Object[] { "n1", "${abc}" });
     } catch (Exception ex) {
       JUnitExtension.handleException(ex);
     }
@@ -81,6 +84,9 @@ public class LoggingTest extends TestCas
 
       // test base logging functions
       logger.log(Level.SEVERE, "Log test messege with Level SEVERE");
+      
+      // https://issues.apache.org/jira/browse/UIMA-5719
+      logger.logrb(Level.WARNING, "testClass", "testMethod", "org.apache.uima.impl.log_messages", "UIMA_external_override_ignored__CONFIG", new Object[] { "n1", "${abc}" });
     } catch (Exception ex) {
       JUnitExtension.handleException(ex);
     }

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/util/impl/TestLog4jLogger_impl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/util/impl/TestLog4jLogger_impl.java?rev=1823237&r1=1823236&r2=1823237&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/util/impl/TestLog4jLogger_impl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/util/impl/TestLog4jLogger_impl.java Mon Feb  5 20:26:11 2018
@@ -72,6 +72,8 @@ public class TestLog4jLogger_impl extend
       classLogger.log(Level.INFO, "OLA in info");
 
       uimaLogger.log(Level.INFO, "UIMA OLA in info");
+      https://issues.apache.org/jira/browse/UIMA-5719
+      uimaLogger.logrb(Level.WARNING, "testClass", "testMethod", "org.apache.uima.impl.log_messages", "UIMA_external_override_ignored__CONFIG", new Object[] { "n1", "${abc}" });
    }
 
    public void testIsLoggable() throws Exception {
@@ -287,6 +289,9 @@ public class TestLog4jLogger_impl extend
       logger.logException(null);
       
       assertEquals(16, nbrcalls[0]);  // all calls except those with null or "" msgs (including non-null throwable/exception)
+      // https://issues.apache.org/jira/browse/UIMA-5719
+      logger.logrb(Level.WARNING, "testClass", "testMethod", "org.apache.uima.impl.log_messages", "UIMA_external_override_ignored__CONFIG", new Object[] { "n1", "${abc}" });
+      
      } finally {
        app.removeFilter(filter);
      }
@@ -423,6 +428,10 @@ public class TestLog4jLogger_impl extend
       logger.log(Level.INFO, "message with \"{0}\"", "substitute");
       logger.info("message with \"{}\"", "substitute");  // new logger style
       logger.info("message with \"{}\"", new Object[] {"substitute"});  // new logger style
+      
+      // https://issues.apache.org/jira/browse/UIMA-5719
+      logger.logrb(Level.WARNING, "testClass", "testMethod", "org.apache.uima.impl.log_messages", "UIMA_external_override_ignored__CONFIG", new Object[] { "n1", "${abc}" });
+
 
    }
 }