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.

Reply via email to