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 2012/09/28 15:02:28 UTC
svn commit: r1391439 - in /camel/trunk/camel-core/src:
main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java
main/java/org/apache/camel/processor/LoggingErrorHandler.java
test/java/org/apache/camel/builder/LoggingErrorHandlerBuilderTest.java
Author: davsclaus
Date: Fri Sep 28 13:02:27 2012
New Revision: 1391439
URL: http://svn.apache.org/viewvc?rev=1391439&view=rev
Log:
CAMEL-5592: Fixed logging error handler to use the logging level configured.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LoggingErrorHandler.java
camel/trunk/camel-core/src/test/java/org/apache/camel/builder/LoggingErrorHandlerBuilderTest.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java?rev=1391439&r1=1391438&r2=1391439&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java Fri Sep 28 13:02:27 2012
@@ -19,6 +19,7 @@ package org.apache.camel.builder;
import org.apache.camel.LoggingLevel;
import org.apache.camel.Processor;
import org.apache.camel.processor.LoggingErrorHandler;
+import org.apache.camel.processor.RedeliveryPolicy;
import org.apache.camel.spi.RouteContext;
import org.apache.camel.util.CamelLogger;
import org.slf4j.Logger;
@@ -52,7 +53,19 @@ public class LoggingErrorHandlerBuilder
public Processor createErrorHandler(final RouteContext routeContext, final Processor processor) {
CamelLogger logger = new CamelLogger(log, level);
- LoggingErrorHandler handler = new LoggingErrorHandler(routeContext.getCamelContext(), processor, logger, getExceptionPolicyStrategy());
+ // configure policy to use the selected logging level, and only log exhausted
+ RedeliveryPolicy policy = new RedeliveryPolicy();
+ policy.setLogExhausted(true);
+ policy.setRetriesExhaustedLogLevel(level);
+ policy.setLogStackTrace(true);
+ policy.setLogRetryAttempted(false);
+ policy.setRetryAttemptedLogLevel(LoggingLevel.OFF);
+ policy.setLogRetryStackTrace(false);
+ policy.setLogContinued(false);
+ policy.setLogHandled(false);
+
+ LoggingErrorHandler handler = new LoggingErrorHandler(routeContext.getCamelContext(), processor, logger,
+ policy, getExceptionPolicyStrategy());
configure(routeContext, handler);
return handler;
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LoggingErrorHandler.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LoggingErrorHandler.java?rev=1391439&r1=1391438&r2=1391439&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LoggingErrorHandler.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LoggingErrorHandler.java Fri Sep 28 13:02:27 2012
@@ -34,10 +34,12 @@ public class LoggingErrorHandler extends
* @param camelContext the camel context
* @param output outer processor that should use this logging error handler
* @param logger logger to use for logging failures
+ * @param redeliveryPolicy redelivery policy
* @param exceptionPolicyStrategy strategy for onException handling
*/
- public LoggingErrorHandler(CamelContext camelContext, Processor output, CamelLogger logger, ExceptionPolicyStrategy exceptionPolicyStrategy) {
- super(camelContext, output, logger, null, new RedeliveryPolicy(), exceptionPolicyStrategy, null, null);
+ public LoggingErrorHandler(CamelContext camelContext, Processor output, CamelLogger logger,
+ RedeliveryPolicy redeliveryPolicy, ExceptionPolicyStrategy exceptionPolicyStrategy) {
+ super(camelContext, output, logger, null, redeliveryPolicy, exceptionPolicyStrategy, null, null);
}
@Override
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/builder/LoggingErrorHandlerBuilderTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/LoggingErrorHandlerBuilderTest.java?rev=1391439&r1=1391438&r2=1391439&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/builder/LoggingErrorHandlerBuilderTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/builder/LoggingErrorHandlerBuilderTest.java Fri Sep 28 13:02:27 2012
@@ -60,7 +60,7 @@ public class LoggingErrorHandlerBuilderT
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
- errorHandler(loggingErrorHandler().level(LoggingLevel.ERROR).log(LoggerFactory.getLogger("foo")));
+ errorHandler(loggingErrorHandler().level(LoggingLevel.WARN).log(LoggerFactory.getLogger("foo")));
from("direct:start").to("mock:foo").throwException(new IllegalArgumentException("Damn"));
}
@@ -140,4 +140,24 @@ public class LoggingErrorHandlerBuilderT
// expected
}
}
+
+ public void testLoggingErrorHandler6() throws Exception {
+ context.addRoutes(new RouteBuilder() {
+ @Override
+ public void configure() throws Exception {
+ errorHandler(loggingErrorHandler().level(LoggingLevel.WARN).logName("foo"));
+
+ from("direct:start").routeId("myRoute")
+ .to("mock:foo")
+ .throwException(new IllegalArgumentException("Damn"));
+ }
+ });
+ context.start();
+
+ try {
+ template.sendBody("direct:start", "Hello World");
+ } catch (Exception e) {
+ // expected
+ }
+ }
}