Author: davsclaus Date: Fri Sep 28 13:03:59 2012 New Revision: 1391440 URL: http://svn.apache.org/viewvc?rev=1391440&view=rev Log: CAMEL-5592: Fixed logging error handler to use the logging level configured.
Modified: camel/branches/camel-2.10.x/ (props changed) camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/processor/LoggingErrorHandler.java camel/branches/camel-2.10.x/camel-core/src/test/java/org/apache/camel/builder/LoggingErrorHandlerBuilderTest.java Propchange: camel/branches/camel-2.10.x/ ------------------------------------------------------------------------------ Merged /camel/trunk:r1391439 Propchange: camel/branches/camel-2.10.x/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java?rev=1391440&r1=1391439&r2=1391440&view=diff ============================================================================== --- camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java (original) +++ camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java Fri Sep 28 13:03:59 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/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/processor/LoggingErrorHandler.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/processor/LoggingErrorHandler.java?rev=1391440&r1=1391439&r2=1391440&view=diff ============================================================================== --- camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/processor/LoggingErrorHandler.java (original) +++ camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/processor/LoggingErrorHandler.java Fri Sep 28 13:03:59 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/branches/camel-2.10.x/camel-core/src/test/java/org/apache/camel/builder/LoggingErrorHandlerBuilderTest.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/test/java/org/apache/camel/builder/LoggingErrorHandlerBuilderTest.java?rev=1391440&r1=1391439&r2=1391440&view=diff ============================================================================== --- camel/branches/camel-2.10.x/camel-core/src/test/java/org/apache/camel/builder/LoggingErrorHandlerBuilderTest.java (original) +++ camel/branches/camel-2.10.x/camel-core/src/test/java/org/apache/camel/builder/LoggingErrorHandlerBuilderTest.java Fri Sep 28 13:03:59 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 + } + } }