Jake, Thank you for your time. I have made the changes to the code as you have suggested. It compiled without problem. However, it does not seems to initiate the Log4j Tag Library. Have I missed out anything? TJ ------------------------------------------------------------ package com.log; import org.apache.log4j.*; import java.net.*; import javax.servlet.*; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class Log4jInit extends HttpServlet { public void init() { try { ServletContext context = null; URL url = context.getResource("/WEB-INF/config/log4j.properties"); BasicConfigurator.configure(); BasicConfigurator.resetConfiguration(); PropertyConfigurator.configure(url); } catch (MalformedURLException e) { e.printStackTrace();} Logger logger = Logger.getLogger(getClass()); logger.info("Logging system initialised successfully"); } public void doGet(HttpServletRequest req, HttpServletResponse res) { } }
>>> [EMAIL PROTECTED] 07/Nov/2003 10:21:59 am >>> You need to look at my code closer. "context" is a ServletContext. You can use it to access stuff anywhere in the webapp. URL url = context.getResource("/WEB-INF/config/log4j.properties"); PropertyConfigurator.configure(url); And, of course, you can also use the InputStream way if you want, but the URL way is a bit simpler. One thing to note. In my original code, I had forgotten to prefix WEB-INF with a "/". That is fixed in the code above. Jake At 09:59 AM 11/7/2003 +1100, you wrote: >Jake, > >Putting the properties file under /web-inf/config is what I really >wanted to achieve, but I am not be able to make it work. I uses the >following to initialised the log4j package. > > > >package com.log; > >import org.apache.log4j.*; >import javax.servlet.http.HttpServlet; >import javax.servlet.http.HttpServletRequest; >import javax.servlet.http.HttpServletResponse; > > >public class Log4jInit extends HttpServlet { > > > public void init() { > > String servletContainer = getServletContext().getRealPath("/"); > > // The exact path to the config file is in servlet mapping > String file = getInitParameter("log4j"); > Logger logger = Logger.getLogger(getClass()); > > // if the log4j-init is not set, then no point in trying > if (file != null) { > > BasicConfigurator.configure(); > BasicConfigurator.resetConfiguration(); > PropertyConfigurator.configure(servletContainer+file); > > // Sent into to system.log > logger.info("Logging system initialised successfully"); > > } > > > } > > public void doGet(HttpServletRequest req, HttpServletResponse res) >{ > } > >} > >I uses the following for my database properties which I have no luck in >getting it to read /web-inf/config too: > >Properties Prop = new Properties(); > try { > > InputStream configStream = >getClass().getResourceAsStream("/config/database.properties"); > Prop.load(configStream); > configStream.close(); > > } catch(IOException e) { > > System.out.println("Error: Cannot laod configuration file "); > } > >Do you have a sample code that works? Thank you. > > >TJ > > > > >>> [EMAIL PROTECTED] 06/Nov/2003 04:33:59 pm >>> >At 11:29 AM 11/5/2003 +1100, you wrote: > >I am using the Log Tag Library 1.0 from Jakarta Project. > > > >In the Installation document, it suggest that in order to initialize > >Log4j automatically, the log4j.properties file will have to be placed >in > >/WEB-INF/classes. > > > >How could I put the log4j.properties file in /WEB-INF/classes/config > >directory? What do I have to do? > > > >Thank you. > >If you are going to create a "config" dir, why not do it directly under > >WEB-INF rather than where classes are put? You can load up an input >stream >using context.getResourceAsStream("WEB-INF/config/log4j.properties") >and >feed that info a Properties object, then send that into >PropertyConfigurator.configure(Properties) or load up a URL using >context.getResource("WEB-INF/config/log4j.properties") and send that >info >PropertyConfigurator.configure(URL). > >Of course you can still do this even if you leave the "config" >directory >under "WEB-INF/classes" and use the same technique above. Whatever you > >feel comfortable with. I just like not cluttering my classpath with >non-classes. > >Jake > > >--------------------------------------------------------------------- >To unsubscribe, e-mail: [EMAIL PROTECTED] >For additional commands, e-mail: [EMAIL PROTECTED] > > > > >IMPORTANT - > >This email and any attachments are confidential and may be privileged in >which case neither is intended to be waived. If you have received this >message in error, please notify us and remove it from your system. It is >your responsibility to check any attachments for viruses and defects >before opening or sending them on. Where applicable, liability is limited >by the Solicitors Scheme approved under the Professional Standards Act >1994 (NSW). Minter Ellison collects personal information to provide and >market our services. For more information about use, disclosure and >access, see our privacy policy at www.minterellison.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] IMPORTANT - This email and any attachments are confidential and may be privileged in which case neither is intended to be waived. If you have received this message in error, please notify us and remove it from your system. It is your responsibility to check any attachments for viruses and defects before opening or sending them on. Where applicable, liability is limited by the Solicitors Scheme approved under the Professional Standards Act 1994 (NSW). Minter Ellison collects personal information to provide and market our services. For more information about use, disclosure and access, see our privacy policy at www.minterellison.com.