Fuse Mediation Router provides several ways to perform logging in a route:
![]() | Difference between the log DSL command and the log component |
|---|---|
The |
Since Fuse Mediation Router 2.2, you can use the
log DSL command to construct a log message at run time using the Simple
expression language. For example, you can create a log message within a route, as
follows:
from("direct:start").log("Processing ${id}").to("bean:foo");This route constructs a String format message at run time. The log message
will by logged at INFO level, using the route ID as the log name. By
default, routes are named consecutively, route-1,
route-2 and so on. But you can use the DSL command,
routeId("myCoolRoute"), to specify a custom route ID.
The log DSL also provides variants that enable you to set the logging level and the log
name explicitly. For example, to set the logging level explicitly to
LoggingLevel.DEBUG, you can invoke the log DSL as follows:
has overloaded methods to set the logging level and/or name as well.
from("direct:start").log(LoggingLevel.DEBUG, "Processing ${id}").to("bean:foo");To set the log name to fileRoute, you can invoke the log DSL as
follows:
from("file://target/files").log(LoggingLevel.DEBUG, "fileRoute", "Processing file ${file:name}").to("bean:foo");In XML DSL, the log DSL is represented by the log element and the log message
is specified by setting the message attribute to a Simple expression, as
follows:
<route id="foo">
<from uri="direct:foo"/>
<log message="Got ${body}"/>
<to uri="mock:foo"/>
</route>The log element supports the message,
loggingLevel and logName attributes. For
example:
<route id="baz">
<from uri="direct:baz"/>
<log message="Me Got ${body}" loggingLevel="FATAL" logName="cool"/>
<to uri="mock:baz"/>
</route>





![[Important]](imagesdb/important.gif)


