[slf4j-user] Per Web App logging
Amir Mistric
amistric at nemours.org
Mon Nov 20 21:55:33 CET 2006
Hi Ceki
Thanks for the quick reply.
Here are my answers:
>If you use the JNDI-based repository selector, you can place a single
>log4j.jar in the containers shared class loader. I am a little surprised
>that you need to copy log4j.jar in each web-app. Can you please elaborate?
Here is the URL we used to configure the RepositorySelector.
http://wiki.jboss.org/wiki/Wiki.jsp?page=Log4jRepositorySelector
We have about 10 web apps running on JBoss AS and the above solution works.
Each web app has its own WEB-INF/lib/log4j.jar and WEB-INF/log4j.xml...
Also, each application has a class that implements ServletContextListener.
public final class MyWebAppContextListener implements ServletContextListener
{
private ServletContext context = null;
// we cannot use Logger.getLogger until we initialize it...
private static Logger log;
...
...
...
In this class we call (in contextInitialized() method):
this.context.log("Initializing Log4J...");
// Before using Log4J logging system, we must initialize it by
adding
// the webapp specific configuration to the repository.
Log4JContextualRepositorySelector.addToRepository(pConfigFilePath);
// note that we can't call Logger.getLogger() until
// Log4JContextualRepositorySelector.addToRepository() is called.
// For all other classes in the webapp, you can call
Logger.getLogger()
// at any time.
log = Logger.getLogger(FindADocContextListener.class);
That is it....
However this fails if we remove log4j.jar from WEB-INF/lib...
I do apologize if this question is gettting off topic
Amir
-----Original Message-----
From: user-bounces at slf4j.org [mailto:user-bounces at slf4j.org] On Behalf Of
Ceki Gülcü
Sent: Monday, November 20, 2006 3:43 PM
To: User list for the slf4j project
Subject: Re: [slf4j-user] Per Web App logging
Hi Amir,
At 09:32 PM 11/20/2006, Amir Mistric wrote:
>Hello Everyone
>
>My company would like to try SLF4J as a replacement for Log4J.
>Currently we use JBoss AS 4.x and the problem we had was that we could not
>configure logging "per web application".
>We ended up using RepositorySelector trick in order to be able to have a
>separate log4j.xml in every web application deployed.
>This approach, however, requires each web app to have a copy of log4j.jar
>in its WEB-INF/lib......
If you use the JNDI-based repository selector, you can place a single
log4j.jar in the containers shared class loader. I am a little surprised
that you need to copy log4j.jar in each web-app. Can you please elaborate?
>Recently we decided to create a shared library repository for all web apps
>we have.
>While this approach has reduced the "baggage" each web app had in its
>WEB-INF/lib we still have to use log4j.jar ....
>
>Our goal is simple. Have every web application running on the same app
>server have its own logging config file but share the single JAR (or jars).
Not yet, but it's core feature planned in one of the next releases of
logback.
>Can SLF4J accomplish this (using built in logback classic) for us?
No, SLF4J is just a front for logback/jul/log4j/jcl. While SLF4J cannot
accomplish what you are asking, log4j can do so, and logback will in the
near future.
>Thanks
>Amir
--
Ceki Gülcü
Logback: The reliable, generic, fast and flexible logging framework for
Java.
http://logback.qos.ch
_______________________________________________
user mailing list
user at slf4j.org
http://www.slf4j.org/mailman/listinfo/user
More information about the slf4j-user
mailing list