Den 12/05/10 06.27, Jacob Kjome skrev:
Ok. So if I understand this correctly, your approach uses a servlet
listener to register all contexts keyed by the last part of their
context path, and you tell the appender in question which ServletContext
to retrieve and then forward to that logger.
Each webapp that defines the servlet context listener can participate
in servlet context logging. However, how many contexts the the
servlet context appender handles depends on how you set up
classloading. If you deploy the log4j-sandbox.jar, along with
log4j.jar, in WEB-INF/lib and use child-first classloading, then the
servlet context appender will only ever deal with a single context;
the current one. On the other hand, if log4j-sandbox.jar and
log4j.jar are shared, e.g., at the container level, then it would
handle more context paths.
Ok, the crucial trick is child-first loading and log4j deployments in
each web container. Makes sense now.
Will this also work with multiple web apps using slf4j, or will they go
to the same appender?
It's been a while since I used it or studied it closely, but it should
handle as many contexts as you give it. Note that I've never tried it
via SLF4J, only directly using Log4j.
BTW, the way I've used this in the past is either to place the jars in
WEB-INF/lib and use child-first classloading or use a logger
repository selector. I always manually configure Log4j after letting
the servlet context listener register the context to the appender.
Then in Tomcat, for instance, I place log4j.jar in a shared lib
location along with log4j.properties, meant for configuring the server
to use Log4j, which looks somewhat like below. So, the server has its
own log4j configuration while each webapp has its own configuration.
And when my app either logs directly to the servlet context or logs
via the servlet context log appender, I have defined exactly where the
output goes; to "${catalina.base}/logs/localhost_mycontext.log".
Oh, and I had to follow these instructions to get Tomcat to use Log4j...
http://tomcat.apache.org/tomcat-6.0-doc/logging.html#log4j
Thank you. It is a very interesting approach.
--
Thorbjørn Ravn Andersen "...plus... Tubular Bells!"
_______________________________________________
slf4j-user mailing list
[email protected]
http://qos.ch/mailman/listinfo/slf4j-user