users@glassfish.java.net

logging best practice

From: Mark Hansen <marklists_at_javector.com>
Date: Mon, 18 Dec 2006 13:48:19 -0500

I'm trying to deploy a WAR that includes log4j in the WEB-INF/lib.
GlassFish isn't finding it, and I understand from reading some of the
blogs that this is because commons-logging is getting loaded by the
System classloader is trying to instantiate the log4j classes that are
on the local Web classloader.

First question: I don't really understand this behavior. Is GlassFish
autodetecting the use of Log4J in my webapp and trying to load the Log4J
classes directly from the System classloader rather than from my Web
classloader? If so, why is it designed that way? Why not just let my
Web app. load the Log4J classes?

Second question: What is best practice for logging in a Web app that is
going to be deployed to GlassFish? I don't really like the solution of
putting Log4J into the GlassFish/lib because I'd like my apps to run on
an "out of the box" GlassFish (or SJSAS) install. And what if I've got
different apps using different versions of Log4J?

Thanks for any advice,

Mark