如何在Camel中记录对log4j记录器的请求/响应?

时间:2013-08-22 17:25:17

标签: java log4j apache-camel

假设您有一个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记录器?

1 个答案:

答案 0 :(得分:0)

这很容易

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

您还可以使用目前为止使用的功能更强大的记录器上的选项来启用/禁用各种功能。你需要设置的类型取决于你处理文件或流或普通字符串等。