Log
How can I log the processing of a Message?
Camel provides many ways to log the fact that you are processing a message. Here is are just some a few 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
log
DSL.
Using log DSL
And in 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
Code Block | ||
---|---|---|
| ||
from("direct:start").log("Processing ${id}").to("bean:foo"); |
...
Info | ||
---|---|---|
| ||
As of Camel 2.12.4/2.13.1, if no logger name or logger instance is passed to log DSL, there 's is a Registry lookup performed to find single instance of |
...
Using log DSL from Spring
In Spring DSL its it is also easy to use log DSL as shown below:
...
Code Block | ||||
---|---|---|---|---|
| ||||
<bean id="myLogger" class="org.slf4j.LoggerFactory" factory-method="getLogger" xmlns="http://www.springframework.org/schema/beans">
<constructor-arg value="com.mycompany.mylogger" />
</bean>
<route id="moo" xmlns="http://camel.apache.org/schema/spring">
<from uri="direct:moo"/>
<log message="Me Got ${body}" loggingLevel="INFO" loggerRef="myLogger"/>
<to uri="mock:baz"/>
</route>
|
Configuring log name globally
Available as of Camel 2.17
By default the log name is the route id. If you want to use a different log name, you would need to configure the logName option. However if you have many logs and you want all of them to use the same log name, then you would need to set that logName option on all of them.
With Camel 2.17 onwards you can configure a global log name that is used instead of the route id, eg
Code Block |
---|
CamelContext context = ...
context.getProperties().put(Exchange.LOG_EIP_NAME, "com.foo.myapp"); |
And in XML
Code Block | ||||
---|---|---|---|---|
| ||||
<camelContext ...>
<properties>
<property key="CamelLogEipName" value="com.foo.myapp"/>
</properties> |
Using slf4j Marker
Available as of Camel 2.9
...