I've done a quick
test and it appears that multiple instances of logger from separate threads direct output to a single instance of an appender. Looking at the (log4j) call stack a synchronisation on the current logger instance is performed but this won't prevent other loggers / threads from calling the same appender, and therefore Appenders must be written to be
thread safe.
My only issue with this is that it introduces a choke point and therefore hinders performance.
Anyone disagree?