One quick question. Are you sure your code extracts the correct location information? Regards, Ceki
At 17:14 21.01.2002 +0000, [EMAIL PROTECTED] wrote: >I was having a problem where even though I was using an AsyncAppender >the logging did not seem to be being buffered and slowed down the >application being logged. I tracked the problem down to the >LocationInfo class which synchronizes on a single StringWriter >shared across all threads in its constructor. New instances of >the object are created by the LoggingEvent getLocationInformation >method which is called by the AsyncAppender on the thread which >called the logging method. > >I modified the LocationInfo class to defer the parsing of the >Throwable's stack trace until the information was actually >needed by one of the get methods. > >This has the following advantages: >1) If the location information is not actually needed then the > parsing is never done. >2) If all the logging is done by the AsyncAppender then there > is no contention for the shared StringWriter. > >It does increase the amount of space used for a LoggingEvent >and does complicate the serialization of the LoggingEvent as >it has to make sure that the throwable's stack trace has been >parsed before serialization. > >In a very simple test this small changed made a single threaded >GUI application run about 10 times faster simply because the >parsing was being done on a background thread. > >I would like log4j to be modified to incorporate this change >but am not sure of the best way to get this done so if anyone >else would like this fix then please speak up. > >-- >To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> >For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- Ceki Gülcü - http://qos.ch -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>