Jim,
That's true but in AsyncAppender:
public
void append(LoggingEvent event) {
// Set the NDC and thread name for the calling thread as these
// LoggingEvent fields were not set at event creation time.
event.getNDC();
event.getThreadName();
if(locationInfo) {
event.getLocationInformation();
}
...
}
Fetching the current thread takes a few milliseconds compared to a mehtod call which
takes a few dozen nanoseconds. The idea is to avoid the cost of Thread.currentThread
if it is not required. Hence the lazy fill in of the thread name field. In
AsyncAppender we can no longer rely on being in the same thread so it gets filled in
at the start of AsyncAppender.doAppend. Hope this clarifies the issue. Ceki
At 19:31 14.06.2001 -0500, Jim Moore wrote:
>As was just brought out on the Users list, the thread name is part of the
>LoggingEvent, but the current implementation is:
> public String getThreadName() {
> if(threadName == null)
> threadName = (Thread.currentThread()).getName();
> return threadName;
> }
>so if it's not asked for that information until it's in an AsyncAppender (or
>having been serialized to a server) then it will give the wrong name.
>
>Any reason for threadName to not get set at LoggingEvent creation?
>
>-Jim Moore
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
--
Ceki Gülcü
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]