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>