Thanks for that information Jake. I checked the Sun docs and yes, it does load parent first. I decided to reinstall the app server (I've been having issues for a while now with memeory consumption since adding web service utilities) and found that there is no bundled log4j.jar. This means I must have added it to the server common directory myself at some point.
Anyway, the app now deploys and is definitely using the WEB_INF/lib/log4j-1.2.9.jar. The double logging problem may be harder to solve though because I believe you are correct - the app server is configuring itself first at start up (I think it uses commons logging over java.util.logging). I'll check to see if I can change it via some server setting. Thanks Rakesh -----Original Message----- From: Jacob Kjome [mailto:[EMAIL PROTECTED] Sent: 21 October 2005 15:56 To: Log4J Users List Subject: Re: Log4j not working It all makes complete sense if the Sun appserver is using parent first classloading. It is easy to work with Log4j in Tomcat for app-specific logging because Tomcat implements child-first classloading. The server gets its version of Log4j in the server classpath and the the app gets its version in WEB-INF/lib along with the config in WEB-INF/classes. In this case, the only log4j.jar that is being loaded (assuming parent-first) is the one at the server level. The one at the app level is being ignored because the log4j packages are already loaded by the server. Auto-configuration is happening at the server level up on server startup. Auto-configuration is done via a static initializer so it won't happen again until server restart. There are a few ways to approach this: 1. Use a global logging configuration; one that applies to both the server and apps. If depending on autoconfiguration, put the logging file in the server classpath before any other config file that might be lurking in jars and, probably use a log4j.xml file instead of log4j.properties because log4j.xml file are loaded in preference to log4j.properties files. Or use the system property to point to the config file (don't recall ATM what that is called right now?). 2. Similar to above, but manually configure the default logger repository at app startup, such as in a servlet context listener, or the like. 3. Use a logger repository selector to provide for app-specific logging in separate logger repositories, even though the app is using the same instance of log4j.jar that the server is using. See the wiki for infomation about appContainerLogging. There is a ContextJNDISelector in the log4j-sandbox and a similar one exists in log4j-1.3 which is even easier to use. In all cases, you can use something like LogWeb to perform configuration at runtime and even upload config files to it. It's really quite slick. Jake Quoting James Stauffer <[EMAIL PROTECTED]>: > If both your app server and application use log4j with different > configs I am not sure how to set it up. If you want to use the same > config file for both then move the config and jar to one common place > (on Tomcat that is common/classes/log4j.properties and > common/lib/log4j.jar). What happens if you remove > C:\Sun\AppServer\domains\domain1\lib\log4j.jar. ? > > On 10/21/05, Rakesh Patel <[EMAIL PROTECTED]> wrote: > > Bizarre...I started the thread "Log4j not working" but Damodar(or > > dyemme) seems to have answered for me but he's using Tomcat. > > > > So James, in answer to your question to me, log4j is in > > C:\Projects\PBTV\war\WEB-INF\lib\log4j-1.2.9.jar along with my > > app-specific jars. There is also one in the app server, > > C:\Sun\AppServer\domains\domain1\lib\log4j.jar. > > > > Obviously I want to pick up the one in WEB-INF\lib first and use > > that. > > > > Still don't understand why log4j didn't pick up the log4j.properties > > file in Web-INF\classes even though it says it went to look > > there..... > > > > Rakesh > > > > -----Original Message----- > > From: James Stauffer [mailto:[EMAIL PROTECTED] > > Sent: 20 October 2005 19:54 > > To: Log4J Users List > > Subject: Re: Log4j not working > > > > > > Where is your log4j.jar? > > > > On 10/20/05, Rakesh Patel <[EMAIL PROTECTED]> wrote: > > > Added debug to the App server and here's what it found: > > > > > > log4j: Trying to find [log4j.xml] using > > > ClassLoader.getSystemResource().|#] > > > > > > [#|2005-10-20T18:02:59.937+0100|INFO|sun-appserver-pe8.1_01|javax. > > > ente > > > rp > > > rise.system.stream.out|_ThreadID=12;| > > > log4j: Trying to find [log4j.properties] using context classloader > > > WebappClassLoader > > > delegate: true > > > repositories: > > > /WEB-INF/classes/ > > > ----------> Parent Classloader: > > > EJBClassLoader : > > > urlSet = [] > > > doneCalled = false > > > Parent -> [EMAIL PROTECTED] > > > > > > .|#] > > > > > > [#|2005-10-20T18:02:59.937+0100|INFO|sun-appserver-pe8.1_01|javax. > > > ente > > > rp > > > rise.system.stream.out|_ThreadID=12;| > > > log4j: Using URL > > > > > [jar:file:/C:/Sun/AppServer/domains/domain1/lib/jaxr-ebxml.jar!/log4 > > j.pr > > > operties] for automatic log4j configuration.|#] > > > > > > [#|2005-10-20T18:02:59.968+0100|INFO|sun-appserver-pe8.1_01|javax. > > > ente > > > rp > > > rise.system.stream.out|_ThreadID=12;| > > > log4j: Reading configuration from URL > > > > > jar:file:/C:/Sun/AppServer/domains/domain1/lib/jaxr-ebxml.jar!/log4j > > .pro > > > perties|#] > > > > > > So why does it not find the log4j.properties file in > > > /WEB-INF/classes/?? > > > > -- > > James Stauffer > > Are you good? Take the test at http://www.livingwaters.com/good/ > > > > -------------------------------------------------------------------- > > - > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > American Express Investments and American Express Independent > > Financial > Advisers are marketing names for American Express Financial Services > Europe Limited, a separate corporation within the American Express > group of companies. American Express Financial Services Europe > Limited is authorised and regulated by, and is entered into the > register (No. 190853 > www.fsa.gov.uk/register/) of, the Financial Services Authority and a member > of the London Stock Exchange. Registered in England No. 3614902. Registered > address: 230 Blackfriars Road, London SE1 8NW. Vat No. 740 4143 68. > > > > The information in this email and any attachments is confidential > > and > intended solely for the attention and use of the named addressee(s). > It may be subject to legal, professional or other privilege and > further distribution of it is strictly prohibited without our > authority. If you are not the intended recipient, you are not > authorised to and must not disclose, copy, distribute, or retain this > message or any part of it, and should notify us immediately. > > > > > > -------------------------------------------------------------------- > > - > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > -- > James Stauffer > Are you good? Take the test at http://www.livingwaters.com/good/ > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] American Express Investments and American Express Independent Financial Advisers are marketing names for American Express Financial Services Europe Limited, a separate corporation within the American Express group of companies. American Express Financial Services Europe Limited is authorised and regulated by, and is entered into the register (No. 190853 www.fsa.gov.uk/register/) of, the Financial Services Authority and a member of the London Stock Exchange. Registered in England No. 3614902. Registered address: 230 Blackfriars Road, London SE1 8NW. Vat No. 740 4143 68. The information in this email and any attachments is confidential and intended solely for the attention and use of the named addressee(s). It may be subject to legal, professional or other privilege and further distribution of it is strictly prohibited without our authority. If you are not the intended recipient, you are not authorised to and must not disclose, copy, distribute, or retain this message or any part of it, and should notify us immediately. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
