Hello Matthew,
We have just added new code to log4j in order to provide a complete
solution to the problem you are describing.
It has several advantages over ContextClassLoaderSelector you
mentioned. For more details, see
http://cvs.apache.org/viewcvs.cgi/logging-log4j/examples/tiny-webapp/
and
I'm using log4j to log application code for several websites,
each of which has at least one WebApp, and some of which have
more than one. I'm configuring log4j with an initialization
servlet (that also does a few other things) from a properties
file using .configureAndWatch(java.io.File).