Log camel exchange body as string using log4j
Asked Answered
G

1

9

I'm trying to log exchange body as a string using log4j.

<convertBodyTo id="_convertBodyTo1" type="java.lang.String"/>
<to id="_to1" uri="log:com.javarticles?level=INFO"/>

but it's not logging as string

15:09:05,403 | INFO  | qtp938841692-57  | javarticles                      |
198 - org.apache.camel.camel-core - 2.15.1.redhat-620133 | 
Exchange[ExchangePattern: InOut, BodyType: java.lang.String, Body: 
org.apache.cxf.jaxrs.impl.HttpHeadersImpl@52767902]

Do we have to make extra logic to log exchange body? And how do we log http headers?

Glissando answered 21/12, 2016 at 10:48 Comment(1)
Seems your body contains a bunch of HTTPHeaders..not sure why you have put them as your body. Those headers exist either as exchange headers or exchange properties. You can access them from there.Pow
M
10

If you only want to log the message body, then use

<log message="${body}"/>

The log endpoint logs a bunch of details by default, you can turn these on|off using the options listed: http://camel.apache.org/log

Mckelvey answered 21/12, 2016 at 14:13 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.