OSB generates a message-id automatically... if you print $messageID along with the body, that may solve your case...
Using $messageID is a good plan but if you want to use a UUID you can use fn:bea-uuid() to assign an id to a variable at the start of your pipeline and print it out in request and response threads. I've done this when trying to get timings for calls to external systems to see how much time is being spent in OSB when we were getting very spiky behaviour (e.g. 95% of responses were sub-second but we saw maxima of the order of 190 seconds).
IIRC, we assigned something like
to a variable and then logging that alongside fn:currentDateTime() as the WLS log timestamps don't give you the millisecond accuracy.
Thanks Paddy for your response. I will implemented it today and see if it works for me.
I think the $messageID variable created automatically is also an instance of UUID and should suffice. You can append the service name/detail to $messageID if needed for better visibility.