You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2011/12/23 06:31:09 UTC
svn commit: r1222567 - in /camel/trunk/camel-core/src:
main/java/org/apache/camel/processor/LogProcessor.java
main/java/org/apache/camel/util/CamelLogger.java
test/java/org/apache/camel/processor/LogProcessorTest.java
Author: davsclaus
Date: Fri Dec 23 05:31:08 2011
New Revision: 1222567
URL: http://svn.apache.org/viewvc?rev=1222567&view=rev
Log:
CAMEL-4823: Optimized log EIP to only evaluate if should log.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LogProcessor.java
camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelLogger.java
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/LogProcessorTest.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LogProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LogProcessor.java?rev=1222567&r1=1222566&r2=1222567&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LogProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LogProcessor.java Fri Dec 23 05:31:08 2011
@@ -46,8 +46,10 @@ public class LogProcessor implements Asy
@Override
public boolean process(Exchange exchange, AsyncCallback callback) {
try {
- String msg = expression.evaluate(exchange, String.class);
- logger.log(msg);
+ if (logger.shouldLog()) {
+ String msg = expression.evaluate(exchange, String.class);
+ logger.doLog(msg);
+ }
} catch (Exception e) {
exchange.setException(e);
} finally {
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelLogger.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelLogger.java?rev=1222567&r1=1222566&r2=1222567&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelLogger.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/util/CamelLogger.java Fri Dec 23 05:31:08 2011
@@ -79,13 +79,27 @@ public class CamelLogger {
log(message);
setLevel(oldLogLevel);
}
-
+
+ /**
+ * Logs the message <b>with</b> checking the {@link #shouldLog()} method first.
+ *
+ * @param message the message to log, if {@link #shouldLog()} returned <tt>true</tt>
+ */
public void log(String message) {
if (shouldLog(log, level)) {
log(log, level, marker, message);
}
}
+ /**
+ * Logs the message <b>without</b> checking the {@link #shouldLog()} method first.
+ *
+ * @param message the message to log
+ */
+ public void doLog(String message) {
+ log(log, level, marker, message);
+ }
+
public void log(String message, Throwable exception, LoggingLevel loggingLevel) {
log(log, loggingLevel, marker, message, exception);
}
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/LogProcessorTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/LogProcessorTest.java?rev=1222567&r1=1222566&r2=1222567&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/LogProcessorTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/LogProcessorTest.java Fri Dec 23 05:31:08 2011
@@ -57,6 +57,14 @@ public class LogProcessorTest extends Co
assertMockEndpointsSatisfied();
}
+ public void testNoLog() throws Exception {
+ getMockEndpoint("mock:bar").expectedMessageCount(1);
+
+ template.sendBody("direct:nolog", "Hi World");
+
+ assertMockEndpointsSatisfied();
+ }
+
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@@ -71,6 +79,8 @@ public class LogProcessorTest extends Co
from("direct:wombat").routeId("wombat")
.log(LoggingLevel.INFO, "cool", "mymarker", "Me got ${body}")
.to("mock:wombat");
+
+ from("direct:nolog").routeId("nolog").log(LoggingLevel.TRACE, "Should not log ${body}").to("mock:bar");
}
};
}