How can I log processing a Message?
Camel provides many ways to log processing a message. Here is just some examples:
- You can use the Log component which logs the Message content.
- You can use the Tracer which trace logs message flow.
- You can also use a Processor or Bean and log from Java code.
- You can use the
Using log DSL
And in Camel 2.2 you can use the
log DSL which allows you to use Simple language to construct a dynamic message which gets logged.
For example you can do
Which will construct a String message at runtime using the Simple language. The log message will by logged at
INFO level using the route id as the log name. By default a route is named
route-2 etc. But you can use the
routeId("myCoolRoute") to set a route name of choice.
The log DSL have overloaded methods to set the logging level and/or name as well.
and to set a logger name
For example you can use this to log the file name being processed if you consume files.
Using log DSL from Spring
In Spring DSL its also easy to use log DSL as shown below:
The log tag has attributes to set the
logName. For example:
Using slf4j Marker
Available as of Camel 2.9
You can specify a marker name in the DSL
Using This Pattern
If you would like to use this EIP Pattern then please read the Getting Started, you may also find the Architecture useful particularly the description of Endpoint and URIs. Then you could try out some of the Examples first before trying this pattern out.