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]



Reply via email to