Camel’s tracer is used for logging message details during routing, where you can see the route path of each message as they happen. Details of the message is also logged such as the message body.

There is an alternative tracer that captures the messages in a Backlog Tracer.


The tracer formats the execution of exchanges to log lines. They are logged at INFO level in the log category: org.apache.camel.Tracing.

The message information from the Exchange is formatted using ExchangeFormatter and the default implementation has many options you can configure accordingly to the javadoc.

Enabling Tracing

In Java you set tracing on CamelContext:


And in XML DSL:

<camelContext trace="true" xmlns="">

And in Spring Boot

camel.springboot.tracing = true

Setting Tracing in Standby mode

By default Camel optimizes and opt-out tracing. Therefore, you would either have to enable tracing from the startup, or turn on standby mode, to allow tracing to be enabled later during runtime.

To set tracing in standby mode you can do:


And in XML DSL:

<camelContext trace="standby" xmlns="">

And in Spring Boot

camel.springboot.tracing-standby = true

If tracer is in standby mode, then tracing is made available, and can be enabled during runtime. This requires to either use JMX or enable via Java code:

Tracer tracer = context.getTracer();