Details
-
Enhancement
-
Resolution: Done
-
Major
-
1.4.4.0-fuse
-
None
-
None
Description
At the moment when you configure a maximum for re-deliveries the logging is always logged as an error.
For example if I configure an exception as such:
exception(ConnectionTimedOutException.class).initialRedeliveryDelay( connectionTimeoutRedeliveryDelay).maximumRedeliveries( connectionTimeoutRedeliveries).process( new GeneralExceptionProcessor("Connection Time out Exception."));
I would see an error in the logging:
02 Oct 2008 15:11:02,875 | ERROR | btpool0-607 | DeadLetterChannel | .apache.camel.processor.Logger 143 | Failed delivery for exchangeId: ID-fuse-rs01/2331-1222279716534/0-8. On delivery attempt: 0 caught: ConnectionTimedOutException: Read timed out ConnectionTimedOutException: Read timed out .... 02 Oct 2008 15:11:02,875 | ERROR | btpool0-608 | DeadLetterChannel | .apache.camel.processor.Logger 106 | Failed delivery for exchangeId: ID-fuse-rs01/2331-1222279716534/0-7. Handled by the failure processor: MyRoute$GeneralExceptionProcessor@1bce15a
It may be that this is not actually viewed as an error by the application and that this is an expected time out in some cases.
It would be useful to be able to control the log level when the retries attempted or exhausted :
exception(ConnectionTimedOutException.class).initialRedeliveryDelay( connectionTimeoutRedeliveryDelay).maximumRedeliveries( connectionTimeoutRedeliveries).retriesExchaustedLogLevel( Level.DEBUG).retryAttemptedLogLevel( Level.DEBUG).process( new GeneralExceptionProcessor("Connection Time out Exception."));