Hi,
I am sending the
LoggingEvent over wire (SocketAppender). The message object in my case is a
custom object I created called a LoggerMessage. This is a simple
container class which holds multiple fields
(all serializable) that we need to transfer over the wire. Now obviously we
are unable to transfer this due to the the fact that message object in a
LoggingEvent is not serialized. So, how do I send the LoggingEvent with my Custom Message Object.
(all serializable) that we need to transfer over the wire. Now obviously we
are unable to transfer this due to the the fact that message object in a
LoggingEvent is not serialized. So, how do I send the LoggingEvent with my Custom Message Object.
Here is what I tried
-
1. One solution
I came up with was to wrap the LoggingEvent object and our LoggerMessage
object in a serializable wrapper class that we created, and transfer that over
the wire. Then on the other
end, we deserialize the wrapper from the stream, pull out the LoggerMessage
and the LoggerEvent out, and assign the LoggerMessage to the LoggingEvent as
its message field (overwriting the String value that it would have after the
serialization process). However, this is where we ran into our problem.
There is no setter method to set the message object in a LoggingEvent.
end, we deserialize the wrapper from the stream, pull out the LoggerMessage
and the LoggerEvent out, and assign the LoggerMessage to the LoggingEvent as
its message field (overwriting the String value that it would have after the
serialization process). However, this is where we ran into our problem.
There is no setter method to set the message object in a LoggingEvent.
2. Another solution
I came up with was to xml-ize the LoggingEvent Object info and then create a
LoggingEvent object on the other end. But then how do I set Localization
Info?
Anone has any
thoughts how to achieve this?
I was going to
thru' mail-archive, it seems that people have encountered this problem earlier
too. There were suggestions of providing a way to either serialize Message
Object or provide a serializable hashtable where people can put name-value pair
for custom fields. Any
thoughts?
Regards,
-Sanjay