[logback-user] - Context selectors useful? - Email found in subject

Ceki Gulcu listid at qos.ch
Thu Nov 27 10:55:43 CET 2008


Hello Lucas,

Thank you for your detailed and helpful response.

Web-applications can accomplish logging isolation by simply embarking
their own copy of slf4j-api.jar and logback-*jar under WEB-INF/lib. As
for Tomcat's own logging, Tomcat 6 no longer uses commons-logging,
they use the j.u.l. instead. This circumvents a major problem occurring
in the Tomcat 5.x series which leaked commons-logging loggers into the
web-applications it hosted, preventing their proper garbage
collection.

Anyway, assuming you can upgrade to Tomcat 6 and can live with jul
logging for Tomcat, logging separation for web-applications can be
accomplished by embarking slf4j and logback in each of your web-apps.

Do you think the above would work for you?

Lucas, Casey wrote:
 > For our web applications deployed within tomcat 5.x we use a custom
 > context selector to allow use of multiple independent logback
 > configurations and implementations.  We use logback for tomcat
 > internal logging (via commons logging over slf4j) and application
 > level logging.  Each web application and tomcat has it's own logback
 > configuration file, own set of logback related jars and is separately
 > controllable via JMX.  We did not put any logback, slf4j, etc. related
 > jars into TOMCAT_HOME/common/lib - instead they are in
 > TOMCAT_HOME/server/lib.
 >
 > The high level of isolation simplifies our development and deployment
 > practices.  In general, we did not want any logging related jar or
 > configuration dependencies between tomcat and the multiple web
 > applications.  We accomplished our isolation goals by developing a
 > custom ContextSelector, however if there were different or better
 > options for isolation we would look at those.  In other words, we're
 > not set on using a ContextSelector implementation - we just want
 > strict isolation.
 >
 > I should mention that we potentially don't use ContextSelector in its
 > originally intended manner.  We tried the JNDI based ContextSelector
 > that ships with logback, but JNDI is not available when tomcat starts
 > doing internal logging so we had trouble separating tomcat logging
 > from application level logging when using the JNDI ContextSelector.
 > Anyway, our ContextSelector implementation boils down to using a
 > classpath-based resource for logging configuration.  We don't really
 > do any dynamic context selection like that of
 > ch.qos.logback...LoggerContextFilter.

-- 
Ceki Gülcü
Logback: The reliable, generic, fast and flexible logging framework for Java.
http://logback.qos.ch


More information about the Logback-user mailing list