> I'm not sure I'd want to attempt that. Modifications in logging code > have a tendency to come back and bite you ;-(... I understand. Maybe a future RFE. I'm happy with your changes then.
> isLoggable() is not synchronized and no longer calls synchronized > methods since we're now using volatiles. > > So it can now be called by Thread A even if Thread B has locked > the handler. > > Or did I miss something? Yes and no. Place this code in the actual context it is used (Logger.log(LogRecord)) and you'll find that Thread A and B will only call publish->isLoggable not isLoggable->publish->isLoggable. It is written that way to avoid double filtering. Jason