Tracer
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. |
Formatting
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
:
context.setTracing(true);
And in XML DSL:
<camelContext trace="true" xmlns="http://activemq.apache.org/camel/schema/spring">
...
</camelContext>
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:
context.setTracingStandby(true);
And in XML DSL:
<camelContext trace="standby" xmlns="http://activemq.apache.org/camel/schema/spring">
...
</camelContext>
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();
tracer.setEnabled(true);