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}" });
+
}
}