0

假设您有一条 Camel 路由,并且您想将整个请求打印到 log4j 记录器。


from("direct:myroute")
  .id(routeName)
  .process(new HttpProcessor(endpoint))
  .marshal()
  .json(JsonLibrary.Jackson, MyRequest.class)
  .toF("http://%s", "myroute")
  .unmarshal()
  .json(JsonLibrary.Jackson, MyResponse.class);

您可以通过添加以下内容将跟踪打印到记录器:


.to("log:mylog?level=debug")

...但这只是打印描述事务的元日志。您可以通过添加以下内容将整个 JSON 请求打印到文件中:


.to("file:myfolder")

...但这会将每个请求打印一个文件到一个特殊文件夹。有没有办法让 Camel 将整个请求打印到 log4j 记录器?

4

1 回答 1

0

这很容易

.from("foo:bar")
 .log(LoggingLevel.DEBUG,"${body}");

您还可以使用迄今为止您一直在使用的更强大的记录器上的选项来启用/禁用各种功能。您需要设置的内容取决于您处理文件、流或纯字符串等。

于 2013-08-22T21:37:21.607 回答