Jake,
 
Using your suggestion, I have able to make my Log4j servlet reading the
correct properties in /WEB-INF/config dir.
 
I know this is a bit out of track, but in another java bean file, I am
using InputStream. Is it a way to change to use the URL just like the
Log4j method which you have pointed out? as I am not able to get it read
from /WEB-INF. Thank you.
 
 
public class ConnectionManager implements HttpSessionBindingListener
{
  private Connection connection;
  private Statement statement;
 
  private String driver = "";
  private String dbURL = "";
  private String login = "";
  private String password = "";
 
 static public void main(String[] args)
  {
      ConnectionManager cm = new ConnectionManager();
  } // main
 
 public ConnectionManager()
  {
 
       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 ");}
 
       driver =Prop.getProperty("driver");
       dbURL = Prop.getProperty("dbURL");
       login = Prop.getProperty("login");
       password = Prop.getProperty("password");
 
}


>>> [EMAIL PROTECTED] 07/Nov/2003 12:19:45 pm >>>

It would help if you actually obtained your servlet context.  Right
now, it 
is null.

ServletContext context = this.getServletContext()

Jake

At 10:47 AM 11/7/2003 +1100, you wrote:
>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.


---------------------------------------------------------------------
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