If we have co-relation id in all request messages payload, we can probably log that, but even body variable gets overwritten with fault or response, and it becomes very hard to co-relate different reporting entry which belongs to same instance.
Here the approach which worked out for us:
Basically we used OSB's messageId as correlation id for all reporting activity.
fn-bea:inlinedXML(fn:concat('<corelationid>',$messageID,'</corelationid>'))
Now we can use corelationid in any activity we want.
At the run time, we can see correlation, and from any event we can find corelationid and then search the entire trace with any corelationid.