In version 1.3 a constructor was added to LoggingEvent so that it could be created with given information. This is used by some of the appender/receiver combos by Scott Deboy that do not serialize LoggingEvent obejcts across sockets. Instead they serialize XML, etc.
That might get you what you want. But regardless, once the LoggingEvent has been constructed in the given log4j environment, it is considered immutable that point and cannot be subsequently modified. -Mark > -----Original Message----- > From: Damian ONeill [AePONA] [mailto:[EMAIL PROTECTED] > Sent: Tuesday, June 24, 2003 6:36 AM > To: Log4J Users List > Subject: Re: org.apache.log4j.spi.LoggingEvent > > > Thanks Steven, this will certainly solve my issue. Do you > have any idea > of how performant this method is? > > I am surprised that nobody else has asked for this type of > functionality > before in LoggingEvent. Is there a chance that LoggingEvent > will ever > be updated to support cloneable? > > > > Damian. > > > Ebersole, Steven wrote: > > >You could simply utilize serialization to perform this. > Here is a code > >snippet I have in a utility class: > > > > public static Object deepCopy( Object incoming ) > > throws java.io.IOException > > { > > try > > { > > // Serialize the incoming out to memory > > ByteArrayOutputStream serBaOut = new > ByteArrayOutputStream(); > > ObjectOutputStream serOut = new > ObjectOutputStream( serBaOut ); > > > > log.debug( "Starting serialization out..." ); > > serOut.writeObject( incoming ); > > log.debug( "Serialization out complete" ); > > > > // Now, re-constitue the model from memory > > ByteArrayInputStream serBaIn = > > new ByteArrayInputStream( > serBaOut.toByteArray() ); > > ObjectInputStream serIn = new ObjectInputStream( > serBaIn ); > > > > log.debug( "Starting serialization in..." ); > > Object outgoing = serIn.readObject(); > > log.debug( "Serialization in complete" ); > > > > return outgoing; > > } > > catch( ClassNotFoundException cnfe ) > > { > > throw new java.io.IOException( "Unable to locate class on > >reconstitution" ); > > } > > } > > > > > >-----Original Message----- > >From: Damian ONeill [AePONA] [mailto:[EMAIL PROTECTED] > >Sent: Tuesday, June 24, 2003 3:19 AM > >To: Log4J Users List > >Subject: Re: org.apache.log4j.spi.LoggingEvent > > > > > >We are using log4j for logging events to an event manager > via the socket > >appender. The event manager is running in a separate > process and uses a > >object input stream to build the received LoggingEvent. The Event > >Manager has a internal event chain that event sinks can > register with to > >receive the logging event. The event sinks extend an > adapter class that > >provides support for handling the event. The adapter implements > >runnable and has a wait queue. Each adapter is kicked off > as a separate > >thread where the run method dequeues the event and passes it to an > >abstract method that the base class must implement. > > > >I wish to clone the LoggingEvent so that each adapter sub class > >(separate thread) has its own copy of the event to do with > as it wishes. > > We invoke the Event Sinks dynamically so that the framework can be > >extended by third parties, therefore I cannot guarantee or impose > >restrictions on what the adapter class may do with the event. > > > >Since the javadoc does not say whether the LoggingEvent is > thread safe, > >the simplest way for me to guarantee no issues is to clone the event > >before I pass it to the adapter sub class. > > > > > >Hope this helps, > >Damian. > > > > > > > > > >Ceki Gülcü wrote: > > > > > > > >>Damian, > >> > >>LoggingEvent is not clonable and this has not been a > problem this far. > >>Can you please explain what you are trying to accomplish by cloning > >>LoggingEvent objects? > >> > >>At 04:38 PM 6/23/2003 +0000, you wrote: > >> > >> > >> > >>>Is there anyone on this list that can answer this > question? or is the > >>>the developers list more suitable? > >>> > >>>Thanks. > >>> > >>>Damian ONeill [AePONA] wrote: > >>> > >>> > >>> > >>>>Can you please suggest the best way to clone a LoggingEvent? > >>>> > >>>>Thanks in advance, > >>>>Damian ONeill. > >>>> > >>>> > >>>> > >>>-- > >>>[EMAIL PROTECTED] > >>> > >>>Damian O'Neill > >>>Software Engineer > >>>AePONA Ltd, > >>>Interpoint Building, > >>>20-24 York Street, > >>>Belfast, > >>>BT15 1AQ > >>> > >>>+44 (0) 2890 275246 > >>> > >>>http://www.aepona.com > >>> > >>> > >>> > >>> > >>>----------------------------------------------------------- > ---------- > >>>To unsubscribe, e-mail: [EMAIL PROTECTED] > >>>For additional commands, e-mail: [EMAIL PROTECTED] > >>> > >>> > >>> > >>-- > >>Ceki For log4j documentation consider "The complete log4j manual" > >> ISBN: 2970036908 http://www.qos.ch/shop/products/clm_t.jsp > >> > >>------------------------------------------------------------ > --------- > >>To unsubscribe, e-mail: [EMAIL PROTECTED] > >>For additional commands, e-mail: [EMAIL PROTECTED] > >> > >> > >> > > > > > > > > -- > [EMAIL PROTECTED] > > Damian O'Neill > Software Engineer > AePONA Ltd, > Interpoint Building, > 20-24 York Street, > Belfast, > BT15 1AQ > > +44 (0) 2890 275246 > > http://www.aepona.com > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]